* 소스코드(원시코드) -> 컴파일 -> 오브젝트 파일(.obj)

 

* 연산자

  - && : 피연산자 둘 다 참이면 TRUE

  - ||  : OR와 같음 하나 이상이 참일 시 TRUE

  - XOR : 하나만 참일 경우 TRUE, 둘다 참이거나 둘다 거짓이면 FALSE

 

* 자료형의 메모리 크기 구하기

  - sizeof 변수이름 : 변수의 메모리 할당 크기

  - sizeof (int) : int 자료형의 메모리 할당 크기

 

* const 키워드

  - 이름을 갖는 상수

  - const 상수는 초기화시 값이 없으면 쓰레기값으로 초기화, 후에 변경할 수 없음

 

* static 변수

  - 한번만 초기화 됨

  - 전역 변수의 특성을 갖고 선언된 지역에서만 접근이 가능함

 

* 배열

  - 배열 선언시에는 배열 크기에 상수만 사용할 수 있음

 

* 포인터

  - int* a, int * a, int *a 셋 모두 같음

 

* 구조체

  - 구조체 포인터를 사용한 멤버 접근 (구조체 struct, 구조체 포인터 pstruct)

    (*pstruct).mem == pstruct->mem 두번째 방식을 많이 사용함

 

* Typedef 사용자 정의 자료형

  - INT, P_INT, UINT, P_UINT, CHAR, UCHAR 등의 사용이 많음

  - 모두 같은 자료형이지만 정수형 변수, 정수형 변수의 포인터, unsigned 정수형 등 구분짓기 위해 사용

 

* 메모리 할당 영역

  - Data Area(데이터 영역) : 전역 변수와 static 변수가 할당되는 영역

  - Stack Area(스택 영역) : 지역 변수와 매개변수 영역

  - Heap Area(힙 영역) : 실행 중(런-타임)에 할당할 메모리 크기를 결정해야 하는 경우에 사용하는 영역(프로그래머가 직접 사용하는 영역)

  - 프로그래머가 Heap Area에 메모리를 할당하는 것이 동적 할당(Dynamic Allocation)

  - Data Area, Stack Area에 메모리가 할당되는 것이 정적 할당(Static Allocation)

 

* malloc 함수

  - 동적 메모리 할당할 경우에 사용하는 함수

 

* 조건부 컴파일

 

  #if CONDITION1         // CONDITION1일 경우

expression1        // expression1을 실행

 

  #elif CONDITION2      // CONDITION2일 경우

   expression2     // expression2를 실행

 

  #else

          expression3    // 그 밖에는 expression3을 실행

 

  #endif

 

 

다시 한번 공부한 C언어 개념에서 잊고 있었거나 확인해야할 부분들만 적음

+ Recent posts