printf 매크로 define
카테고리 없음 / 2017. 2. 18. 23:30
가변인자 매크로 만들기~
결론은 잘안됨.
기타
----------
gcc에서는 ...도 잘 인식하나, VC++ 6.0에서는 인식이 안된다.
"..." 대신, __VA_ARGS__사용(잘안됨)
#define my_printf(str,__VA_ARGS__) xxprintf(str,__VA_ARGS__)
결론은 잘안됨.
기타
----------
gcc에서는 ...도 잘 인식하나, VC++ 6.0에서는 인식이 안된다.
"..." 대신, __VA_ARGS__사용(잘안됨)
#define my_printf(str,__VA_ARGS__) xxprintf(str,__VA_ARGS__)
소스파일 여기저기에서 다른파일을 include하게 되어 버렸다.
컴파일할때, 중복함수 링크 에러가 발생한다.
아래처럼하면, include가 안되어야 되는것 아닌가?
#ifndef uart_c
#define uart_c
...
#endif//uart_c
원인
------------------------------
매크로는 1개의 파일(include 포함)에서만 동작한다.
여러개의 소스파일이, 각각 컴파일된 경우, 적용되지 않는다.
(하나의 파일에 모두 include되면, 동작한다.)
해결방안
------------------------------
#ifdef 보다는 #pragma once 를 사용하라.
(처음 컴파일되는 파일에 한번만 넣으면 된다.)