pretty code

2020年2月21日 星期五

Print integer string in the macro of GCC

前一篇文章提到的例子是 for VC。

既然平常都是用 GCC,還是查一下 GCC 要怎麼做。

底下是來自 stackoverflow rob05c 的解答。

#define STRINGIFY(s) XSTRINGIFY(s)
#define XSTRINGIFY(s) #s

#define XDEFINE __GNUC__
#define YDEFINE __GNUC_MINOR__
#define ZDEFINE __GNUC_PATCHLEVEL__

#pragma message "GCC = " STRINGIFY(XDEFINE)"."STRINGIFY(YDEFINE)"."STRINGIFY(ZDEFINE)
輸出結果

test.c:12:9: note: #pragma message: GCC = 4.9.2
 #pragma message "GCC = " STRINGIFY(XDEFINE)"."STRINGIFY(YDEFINE)"."STRINGIFY(ZDEFINE)

後記

這兩篇指的都是在編譯時期,需要做一些前置檢查,如果不符合某些條件,就停止編譯。如果是在執行時期就不需要那麼麻煩了。

沒有留言: