본문 바로가기

프로그래밍/C언어22

전처리기(2) #include #define MAX 10 #define TEST( a, b ) if( a < b ) { a = b; } #define PRINT(str) printf( #str"=%s\n", str ) #define PLUS( i, j ) (i##j) void main() { int a = MAX; int b = 20; char* ch = "TEST!!!"; printf( "%d %d\n", a, b ); TEST(a, b); printf( "%d %d\n", a, b ); PRINT(ch); printf( "%d\n", PLUS(10, 10) ); } #define, 이것 또한 많이 쓰는 전처리기중에 하나인데, 소스를 참고하자. 따른 설명은 필요 없을 것 같고 #를 사용하면 문자로. ##를 사용하면 .. 2010. 3. 10.
전처리기(1) 전처리기에 대해서 알아 보자. 가장 기초적인 전처리기는 #include 가 있을 것. #include 는 특정 file안에 있는 함수를 추가, 사용하기 위해서 사용되는데, #include 를 사용하면 c에서 제공하는 표준 헤더파일에서 검색 #include "" 를 사용하면 파일이 존재하는 폴더에서 헤더를 찾는다. (소스코드는 패스) 2010. 3. 10.
__FILE__, __LINE__ 두 명령어는 매우 간단하다. __FILE__키워드와, __LINE__ 키워드. #include void main() { printf( "파일명 : %s \n현재 라인 : %d\n", __FILE__, __LINE__ ); } __FILE__은 현재 파일이 존재하는 경로를 문자열로써 출력하고 __LINE__은 __LINE__ 키워드가 사용되고 있는 시점의 라인을 출력한다. 주로 디버그를 위해서 자주 사용할 것 같다는 느낌이 든다. 2010. 3. 10.
함수 포인터(2) 앞에서 썻듯이 함수 포인터를 다양한 함수를 for문을 이용해서 루프에서 사용한다고 하면, 실제로 함수의 포인터를 인자로 보낼 수 있는 방법도 존재한다(그러니까 함수 포인터겠지만) #include int sum(int a, int b);// 합 구하기 함수 void ptrfunction( int (*fp)(int, int ), int a, int b ); // 함 구하는 함수 포인터를 받는 함수 void main() { ptrfunction(sum, 10, 20);// sum 함수의 포인터와 그 인자값을 보내기 위해 10, 20을 보낸다. } int sum(int a, int b ) { return a+b; } void ptrfunction( int (*fp)(int, int ), int a, int b .. 2010. 3. 10.
함수 포인터 함수에 대해서 포인터를 사용하여 활용 하는 방법 소스를 보면 이해가 갈듯, 어디서 써야 할지는 솔직히 잘 모르겠다; 함수의 인자로 함수를 보내나?? 흠--a; #include int plus(int n1, int n2); int minus(int n1, int n2); int doubles(int n1, int n2); int divied(int n1, int n2); void main() { int n1; int n2; int chk; int (*fp)(int, int);// 함수는 포인터로 존재 while(1) { printf( "1. 더하기\t2. 빼기\n3. 곱하기\t4. 나누기\n5. 종료\n" ); scanf( "%d",&chk); switch(chk) { case 1: fp = plus; b.. 2010. 3. 9.
2차원 배열 동적 할당 음, 큰 설명은 필요 없을것 같고 소스 참조 ㄱㄱ #include #include #defind MAX 5 voia main() { // 할당 p = (int**)malloc(sizeof( int* )* MAX); for( int i=0; i 2010. 3. 9.