C/C++/API/MFC

API: C로 윈도우 프로그래밍을 하는 것

MFC: C++의 개념으로 API를 클래스로 싸논 것

 

프로그래밍 4단계

1. 프로그램 작성 (.cpp,.cs)

2. 컴파일 (*.obj)

3. 링크(.obj+.stl)

4. 실행파일 (.exe)

 

정적링크 vs. 동적링크

정적링크: .exe로 실행되는 파일

동적링크: .dll로 따로 빼놓는 것

 



메모리 구조

Stack-지역변수(자동변수)/수시로 썼다 지워졌다 함

Queqe-시스템메시지..

Data-전역변수, 정적변수(static)/컴파일시 크기가 결정되면 바뀌지 않음

Code segment-프로그램 코드가 올라가는 영역

Heap-주소값(포인터:포인터변수, 배열의 이름, 함수이름->함수포인터  >> 모두 포인터에 포함됨), 함수원형

 

cf.)

int a[30];

int* pA;

 

sizeof(a)? 120

sizeof(pA)? 4

포인터형 변수의 크기는 주소값을 담기때문에 자료형에 상관없이 무조건 4byte

 




전처리기- 컴파일되기 전에 미리 실행되는 것들(#include, #define등)

매크로

#define                                            PI             3.14

매크로 언어(전처리기 지시자)        매크로상수        값

 

static 값을 유지해야 할때 사용(ex. 함수가 리턴했을 경우 값이 변할 수 있는데 기존의 값으로 연산하고 싶을 때

static으로 선언해서 재사용 할 수 있음)

 

전역에 static을 붙이는 경우,

전역일 경우 다른 파일에서도 그 값에 접근할 수 있는데, static을 붙여 주면 그 프로그램에서만 사용 가능해진다.

 



■ printf()

 

출력제어문자(escape squence)

\n 줄바꿈

\r 캐리지 리턴

\b 백스페이스

\a 경고음

\" 겹따옴표

\' 홑따옴표

\\ 역슬레쉬

\t 탭

 

연산자=함수

%나머지 연산자

ex) rand()%10이라고 하면 0~9 사이의 값만 임의로 출력, 이런 식으로 범위를 지정해줄 때 사용.

 

관계 연산자는 리턴을 bool타입으로 함(TRUE or FALSE)

Posted by 마마필로 :