Dev Language/C
-
Debug printfDev Language/C 2011. 7. 13. 17:53
debug.h #define DEBUG_NONE 0 #define DEBUG_PRINT 1 #if (DEBUG) & DEBUG_PRINT #define #define PRINTF(...) printf(__VA_ARGS__) ... 기타 매크로 정의 #else //!DEBUG_PRINT #define PRINTF(...) #endif --- 다른 파일에서 #define DEBUG DEBUG DEBUG_PRINT 선언하고 벌레잡기용 PRINTF("ㅁㄴㅇㄻㅁㄴㅇㄹ"); 사용 --- 벌레잡기 완료되면, #define DEBUG DEBUG_NONE
-
do {..} while(0)Dev Language/C 2010. 2. 22. 17:18
do.. while(0) http://mkseo.pe.kr/blog/?p=28 http://kldp.org/node/41390 http://mkseo.pe.kr/blog/?p=806 그렇다면, 다음은? 이해가 안간다. ㅠㅠ /arch/x86/inclue/asm/pgtable.h ... #define pte_update(mm, addr, ptep) do { } while(0) ... mm, addr, ptep 인자에 대한 어떤 프로세싱도 없이.. { 공백 }... 만 있다. 사용하는 예제(?)를 찾아보니, 다음과 같다 /arch/x86/mm/pgtable.c ... int ptep_test_and_clear_young(struct vm_area struct *vma, unsigned long addr, p..
-
memcpy()를 이용한 메모리 복사 예제Dev Language/C 2008. 11. 6. 14:59
#include #include int main(){ char c = 'a'; int n=100; double d = 8000.123; char *str="asdfasdf"; chat temp[100]; char *p=templ memcpy(p, &c, sizeof(char)); memcpy(p+=sizeof(char), &n, sizeof(int)); memcpy(p+=sizeof(int), &d, sizeof(double)); memcpy(p+=sizeof(double), &str, sizeof(charr*)); printf(%s\n", *(char**)p ); p-= sizeof(double); printf("%s/31f\n", *(double*)p); p-=sizeof(int); ... retur..
-
가변인자 (va_list, ...)Dev Language/C 2008. 10. 27. 10:47
va_list ap; va_start (ap, temp); va_arg(ap, type); va_end(temp); 참고 url : http://www.winapi.co.kr/clec/cpp2/15-3-1.htm #include #include // for va_list, va_start, ... void print(char *fmt, ...) { int i; va_list ap; va_start(ap, fmt); for (i=0; fmt[i[; i++) { if (fmt[i] != '%') putchar(fmt[i]); else switch(fmt[++i]) { case 'c' : printf("%c", va_arg(ap,char)); break; case 'd' : printf("%d", va_arg..