# clang

선언과 정의의 차이점
C/C++을 접해보면 가장 헷갈리는 것중 하나가 바로 선언과 정의가 분리돼있다는 것이다.(비교적)모던한 객체지향 언어들인 Java, \`C- 이번에는 C, C++에서 선언과 정의의 차이점이 무엇인지 알아보도록 하자.컴파일러가 참조할 식별자(identifier)와 이름을

정적 지역 변수의 초기화 시점
코딩을 하면서 static변수를 쓰면서 최근 문득 든 생각이 있다. “static변수를 생성자에서 초기화하면 새로운 객체를 로드할 때마다 해당 값으로 덮어써지는거 아니야?” 라는 생각이었다.물론 턱도 없는 생각이라는 걸 잘 알고 있고 그렇게 작동하지 않는다는 것쯤은 직
C언어) 포인터
변수 num이 저장하기 시작한 주소 0x12ff76이 변수 num의 주소 값이다.이러한 정수 형태의 주소 값을 저장하는 목적으로 선언되는 것이 포인터 변수이다."정수 7이 저장된 int혀아 변수 num을 선언하고 이 변수의 주소 값 저장을 위한 포인터 변수 pnum을
[CS50] cs50.h 를 로컬 vscode 에서 사용하기 for MacOS
clang: error: linker command failed with exit code 1 (use -v to see invocation) 에러 해결방법 for mac

[WWDC17] Behind the Scenes of the Xcode Build Process
Behind the Scenes of the Xcode Build Process 발표를 통해 빌드 프로세스 구조, 컴파일러 영역, 링커에 대해 알아봅니다.

[C] 포인터
포인터(pointer) : 주소 값을 담고 있는 변수(또는 상수)하나의 주소 값은 1Byte 크기의 메모리 공간을 표현함32bit 시스템에서는 주소 값을 표현하는데 32bit를 사용함(사용할 수 있는 최대 메모리 공간 : 2^32bit = 4GB)64bit 시스템 ==

[C] static 변수
static 지역변수는 스택이 아닌 데이터 영역에 저장된다. 전역변수와 동일한 위치(데이터 영역), 동일한 시점(프로그램의 시작과 동시에)에 메모리로 올라간다. 메모리로 올라가면 프로그램이 종료될 때까지 공간을 차지한다. 아래 코드를 통해 이를 실험해볼 수 있다.그렇다