原文:gcc編譯階段打印宏定義的內容

背景 總所周知,代碼量稍微大一點的C C 項目的一些宏定義都會比較復雜,有時候會嵌套多個 if else判斷分支和一堆 ifdef undef讓你單看代碼的話很難判斷出宏定義的具體內容。 如果有一種機制能夠幫助我們在構建期間打印出宏的實際內容,就能幫我們更快地捋清楚代碼邏輯。 message pragma 如message pragma定義所說,可以使用它來打印一個字面意義的字符串: 而我們知道宏 ...

2020-12-20 17:12 0 935 推薦指數:

查看詳情

c++編譯打印定義

#pragma message("this is message") #pragma message只能打印字符串,如果想打印任何定義可使用: #define PRINT_MACRO_HELPER(x) #x #define PRINT_MACRO(x) #x ...

Wed May 24 06:17:00 CST 2017 0 1521
Linux下的GCC編譯器內部預定義

Linux下的GCC編譯器內部預定義 經常在一些開源的程序中看到一些定義,卻看不到這些定義是在哪些地方定義的,其實有些定義是交叉編譯工具GCC定義好的,比如:__GNUC__,__ELF__等等,怎么看到這些定義呢,可以采用以下命令來查看: gcc -E -dM ...

Wed May 08 18:40:00 CST 2019 0 658
GCC編譯查看

編譯調試代碼時,總是遇到要使用編譯器預編譯進行跨平台編譯. gcc -E -dM -</dev/null 編譯器版本 Thread model: posix gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 結果 ...

Fri May 24 01:31:00 CST 2019 0 1048
查看GCC的內置定義

開發過程中我們常常需要使用定義。。 為了盡可能多的使用GCC為我們提供的特性,首先我們需要知道gcc提供了那些特性。。。 gcc -dM -E - < /dev/null 沒錯,就這么一句話就可以搞定了。。。 ...

Sat Sep 22 03:56:00 CST 2018 0 1398
gcc 編譯 hello.c 的四個階段

目錄 1 預處理階段:預處理器(cpp) 2 編譯階段編譯器(ccl) 3 匯編階段:匯編器(as) 4 鏈接階段:鏈接器(ld) hello.c 1 預處理階段:預處理器(cpp) 2 編譯階段編譯器(ccl) 3 匯編階段 ...

Sat Sep 07 08:07:00 CST 2019 0 803
gcc中預定義__GNUC__

今天在看Linux系統編程這本書的代碼的時候看到了__GNUC__,不太清楚這個所以去查了一下,以此記錄。GNU C預定義了一系列的,這些都是以雙下划線開始的,這里只講一下__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__,其他GNU C的預定義 ...

Sat Jul 22 08:14:00 CST 2017 0 10718
獲取gcc和clang的內置定義

下面是對Gcc的內置定義的解釋: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html https://github.com/gcc-mirror/gcc/blob/master/gcc/config ...

Wed Feb 20 06:42:00 CST 2019 0 535
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM