3
我在編譯它前通過C預處理器運行我的源文件兩次,並且我想延遲#include指令直到第二遍。cpp:延遲#include's直到第二遍
直觀地說,我想這一點,但它不工作:
##include <zlib.h>
我只是需要一個結構,即預處理時,會給#include mylib
。
我在編譯它前通過C預處理器運行我的源文件兩次,並且我想延遲#include指令直到第二遍。cpp:延遲#include's直到第二遍
直觀地說,我想這一點,但它不工作:
##include <zlib.h>
我只是需要一個結構,即預處理時,會給#include mylib
。
你可以定義一個宏,像
#define INCLUDE #include
,然後當你有東西,使用宏來代替。
INCLUDE <zlib.h>
在海灣合作委員會的預處理器,至少,這給了我#include <zlib.h>
。
我在想想要這樣做的原因。照顧開導? – cHao 2011-06-16 22:37:55
@cHao:我正在使用flex,並且我想對該文件進行預處理以使我可以編寫正則表達式,但該文件需要在經過flex處理後再次運行預處理器。 – bukzor 2011-06-16 22:40:04
您可以使預處理器無法識別的格式使您的包含,並且當它執行它的事情(假設flex更改文件)時將flex更改爲「正確」格式?由於沒有修改文件或做條件包含,你可能沒有太多的運氣 - 預處理器將有相同的東西來處理兩次,所以它會在它運行兩次時做同樣的事情。 – cHao 2011-06-16 22:50:11