|
1. inline
- 이 키워드가 붙은 메서드 호출 명령을 해당 메서드의 컴파일된 코드로 대체함으로써 함수 호출에 필요한 추가 작업을 생략 가능하며 따라서 실행시간이 절약됨(프로그램 코드는 길어짐)
- inline 키워드를 붙였다고 해서 항상 위와같이 되는 것은 아니고 몇가지 제약이 있음.
2. #pragma
이는 컴파일러 또는 링커에 다양한 옵션을 지시하는 것입니다.
내용이 많아서 여기에 일일이 적을 수는 없고 도움말을 참고하시면 되겠습니다.
3. 함수 포인터
- 함수 포인터는 말 그대로 함수를 가리키는 포인터입니다.
- 함수 포인터가 필요한 경우는 상황에 따라 서로 다른 함수를 호출해야 하는 경우로서,
일단 특정 함수로 설정해주면 나머지 if문이 필요 없게 되는 편리함이 있습니다.
- 클래스의 가상함수와 비슷한 것입니다.
예:
#include<stdio.h>
#include<string.h>
#include<conio.h>
//#include <stdlib.h>
void func1(char *);
void func2(char *);
void main(int argc,char *argv[], char * env[])
{
void (*pFunc)(char *) = func2;
if(argc>=2)
{
if(strstr(strupr(argv[1]),"COLOR")==argv[1]) pFunc = func1;
}
// randomize();
// if(random(2)==0) pFunc = func1;
pFunc("Function Pointer");
while(kbhit()) getch(); getch();
}
void func1(char *str)
{
printf("\nfunc1 called.\n");
textattr( YELLOW | (BLUE<<4) );
cprintf("%s",str);
}
void func2(char *str)
{
printf("\nfunc2 called.\n%s",str);
}
뚱뚜루 님이 쓰신 글 :
: inline이 뭐하는건가영? c언어에서 그런키워드는 못본거같습니다.
: #pragma 이건 뭐하는건가영?
: 그리고 함수포인터에대해 궁금합니다.
: 설명점부탁드립니다.
:
|