본문 바로가기
반응형

Program Language/C18

printf debugging printf로 디버깅 할때 끝에 \n newline을 넣어도 print가 제대로 안 될때가 있다. 이땐 printf후에 fflush(stdout); 을 해주면 출력하고 버퍼를 비우게된다. (당연히 속도는 늦어진다.) 2012. 6. 19.
sizeof main() { int arr[16]; int* nptr; int* ptr; ptr = malloc(sizeof(int)*16); printf("SIZE arr=%d , nptr=%d, ptr=%d\n", sizeof(arr), sizeof(nptr), sizeof(ptr)); } 결과 : SIZE arr=64 , nptr=4, ptr=4 main() { char arr[16]; char* nptr; char* ptr; ptr = malloc(sizeof(char)*16); printf("SIZE arr=%d , nptr=%d, ptr=%d\n", sizeof(arr), sizeof(nptr), sizeof(ptr)); } 결과 : SIZE arr=16 , nptr=4, ptr=4 배열 크기는 하나크기*.. 2012. 6. 4.
extern static 정리 http://blog.naver.com/entraiger?Redirect=Log&logNo=120122764718 Extern, Static 변수와 함수Extern, Static 키워드는 변수와 함수에서 쓰일 때 그 의미가 조금 다르다. 형식과 쓰임새가 차이가 있기 때문이다. extern 변수는 다른 파일에서 변수를 공유해서 쓰기 위해 있는 키워드인데, 전역변수는 키워드를 생략해도 기본으로 extern선언이 되는 성질이 있다.아래 코드를 보면,-----------------------/*main.c*/#include #include "fun1.h"int a=1; // 변수 선언void main(){f();printf("%d\n",a); // 여기서의 a는 위의 a}----------------------.. 2012. 4. 25.
caller 찾기 누가 이 함수를 호출할까?? 궁금할땐 1. grep같은걸로 text로 찾기 2. gdb를 걸어놓고 bt로 확인 3. eclipse같은 툴로 caller확인 4. pointer를 이용해 찾기 #include #define PRINT_INFO() do { printk("%s starting( caller:", __FUNCTION__); print_symbol("%s)n", (unsigned long) __builtin_return_address(0)); } while (0) 2012. 1. 27.