[問題] 結合##和_func_,_FILE_和_LINE_來debug
看板C_and_CPP作者SweepingMonk ((((((((((()))))))))))時間13年前 (2012/05/10 15:02)推噓1(1推 0噓 11→)留言12則, 4人參與討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
none
問題(Question):
我想利用 ##, #, __func__, __FILE__, __LINE__ 來 trace code
希望把 macro 寫在獨立的 .h header 裡面, 然後在 .c 裡面使用如下
debug.h
========================
#define CONCAT_(x, y, z) x ## y ## z
#define CONCAT(x, y, z) CONCAT_(x, y, z)
#define CODE_SEQ \
CONCAT(__func__, __FILE__, __LINE__) // 這些是參考版上 #1CKjm79n
// tinlans 大大的文章
main.c
========================
1 #include "debug.h"
2
3 int main()
4 {
5 printf("%s", CODE_SEQ); // 希望輸出:main main.c 5
6 return 0;
7 }
但是 compile 的時候會出現錯誤:
main.c:5: error: pasting "__func__" and ""main.c""
does not give a valid preprocessing token
main.c:5: error: pasting ""main.c"" and "5"
does not give a valid preprocessing token
請版上高手指點迷津.......<(_._)>
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.238.226
推
05/10 16:34, , 1F
05/10 16:34, 1F
→
05/10 17:02, , 2F
05/10 17:02, 2F
→
05/10 17:46, , 3F
05/10 17:46, 3F
→
05/10 22:40, , 4F
05/10 22:40, 4F
→
05/11 02:16, , 5F
05/11 02:16, 5F
→
05/11 02:16, , 6F
05/11 02:16, 6F
→
05/11 02:16, , 7F
05/11 02:16, 7F
→
05/11 02:17, , 8F
05/11 02:17, 8F
→
05/11 02:18, , 9F
05/11 02:18, 9F
→
05/11 02:19, , 10F
05/11 02:19, 10F
→
05/11 02:21, , 11F
05/11 02:21, 11F
→
05/11 02:22, , 12F
05/11 02:22, 12F
討論串 (同標題文章)