c-preprocessor

    0熱度

    1回答

    我正在開發使用ImageMagick的一個C/C++庫(使用/同時支持libMagickCore和libMagick++),用於讀取和寫入的圖像數據(未爲處理)。 現在,我還想支持IM的GraphicsMagick fork(例如使用Debian的graphicsmagick-libmagick-dev-compat包)。 不幸的是,這些API有足夠的分歧,因此我不能使用其中一個作爲另一個的直接替

    1熱度

    1回答

    我想解開一些我沒寫的代碼。在這個長文件中嵌套了很多#if語句。我想要一種方法來快速識別圍繞給定代碼段的所有#if語句。試圖在Web上搜索「#if」很困難,因爲它要麼獲取井號標籤,要麼忽略標點符號,「條件預處理器指令」除了描述它們的內容外,沒有其他任何內容。 是否有任何命令行工具已經存在以查找影響給定行的所有#ifs? 我正在使用Visual Studio 2015 Pro。有沒有擴展可以做到這一點

    0熱度

    1回答

    我有一箇舊的.a庫,其名稱爲BULib,庫目標的GCC_PREPROCESSOR_DEFINITIONS中定義了一個宏NEW_API。這個宏在lib中用來公開頭中的一些方法,或者不用條件編譯。例如: #ifdef NEW_API + (nullable NSString *)user; #endif 在項目中使用此庫時出現此問題。當我想用 [BULib user]; 我得到一個編譯時錯

    0熱度

    2回答

    我有一個代碼,它使用#warning很多信號編譯時間分支給用戶。代碼有很多配置選項,因此不清楚代碼中的哪些位實際上被納入編譯。 一旦你選擇了配置選項,那些警告確實混亂了輸出。所以我想能夠禁用它們。最簡單的方法是將每個警告包裝到#ifdef ... #else結構中。但如果我再次觸摸該代碼,則需要再次查看整個代碼庫。 所以相反,我想抽象一點。但是,我試圖定義一個調用#warning或#pragma

    0熱度

    2回答

    在宏被定義或由程序員註釋該實施例中的代碼編譯期間刪除的功能。 #include <stdio.h> #define MACRO //or omitted #ifdef MACRO void Function(const char* str) { printf("%s\n", str); } #else #define Function

    5熱度

    1回答

    我以爲cpp foo.c和gcc -E foo.c都以同樣的方式對源文件進行預處理,但是我得到的輸出對於同一個文件是不同的。 $ cat foo.c #define VARIABLE 3 #define PASTER(x,y) x ## _ ## y #define EVALUATOR(x,y) PASTER(x,y) #define NAME(fun) EVALUATOR(fun, VA

    1熱度

    3回答

    我試了一個多星期沒有成功。 我在兩個處理器之間創建一個記錄器接口,我需要幫助定義自動化的MACROS。 我的意思是? 假設我有一個記錄器消息定義爲LOGGER_MSG_ID_2,它採用uint8和uint16類型的兩個參數。 我有一個枚舉定義爲: typedef enum{ PARAM_NONE, PARAM_SIZE_UINT8, PARAM_SIZE_UINT16

    -1熱度

    3回答

    例如: #include "pathtoheader1/header1.hh" ##include "pathtoheader2/header2.hh" 是什麼這兩個預處理指令之間的區別? 編輯 從我所知道的,## include指令,在我與運行程序的情況下,將預先準備-I標誌來指定包含路徑。 TRICK_CFLAGS += -Imodels TRICK_CXXFLAGS += -Imod

    0熱度

    4回答

    以下代碼在由g ++ -std = C++ 11編譯器編譯時失敗。 # include<iostream> # include<vector> using namespace std; # define stlf(x) x.begin(), x.end() # define repf(it, a, b) for(auto it = a ; it !=

    3熱度

    2回答

    我有這樣的一組#define語句的: #define MODULE1_PINMASK 0x1 #define MODULE2_PINMASK 0x2 #define MODULE3_PINMASK 0x3 其中pinmask的價值取決於第二個參數: #define MODULE1_PORT_PIN A,1 #define MODULE2_PORT_PIN A,2 #define MOD