stringification

    1熱度

    3回答

    我有一組目標的宏對此我想基於一個選擇宏別名,像這樣的宏: 選擇宏: #define I2C_MODULE 1 別名宏(概念形式): #define I2C_MODULE_BASE I2C<Value of I2C_MODULE>_BASE #define I2C_MODULE_NVIC INT_I2C<Value of I2C_MODULE> 目標宏(從外部文件我的控制的): #defi

    0熱度

    1回答

    我想用mingw32/VC實現我的DLL的跨平臺構建。 目前,一切都與明確的一面完美。但是我必須包裝在宏觀幾件事情對於VC(它是建立爲/ TC),例如: void __attribute__((fastcall)) do1 ( A*, B , C, D); bool __attribute__((fastcall)) (*do2) (E*, F); 第一個是簡單,只需一個宏: #ifdef

    1熱度

    1回答

    我正在成功使用以下宏。 #define SECTION(a) __attribute__ ((section(#a))) 現在在同一文件中我定義了一個新的宏,我想在我的代碼使用它: #define GP_RAM_DATA_1 SECTION(".gp_ram1.data") GP_RAM_DATA_1 int foo = 5; 代碼編譯和運行正常,沒有編譯器警告或錯誤,但Eclips

    1熱度

    1回答

    鑑於下面的代碼,打印一個字符串,它是兩個詞的字符串化: #define PORT_INFO_MAC_2(portNum) port: portNum #define PORT_INFO_MAC(portNum) PORT_INFO_MAC_2(portNum) /* Stringify macro expansion instead of the macro itself */ #de

    1熱度

    1回答

    的給出的以下的代碼: #define MY_STRINGIFY_MACRO(...) #__VA_ARGS__ #define PORT_MAC(portNum) port: portNum #define LOG_MACRO(...) printf(MY_STRINGIFY_MACRO(__VA_ARGS__)) void func(int portNum) {

    -2熱度

    1回答

    承擔這個代碼: typedef enum CHECKSUM { DENY = 0, ALLOW = 1 } checksum; #define terminal(x, str) static checksum* terminal_##x; { if(!strcmp(#str, "static")) { static checksum local = ALLOW; terminal_##x = &

    0熱度

    1回答

    我在我的C++測試代碼中有簡單的委託函數。由於我不能包含原始實現.cpp文件(嵌入式文件),因此我在PC上運行的測試中使用代理.cpp文件。我的想法是簡單地使用相同的宏作爲實現的主體,除了根據簽名提供的括號()和參數。 我想是這樣的: void Flash::init() { DELEGATE_DESTINATION(); } bool Flash::write(args) {

    4熱度

    2回答

    我見過this topic它做介紹了「字符串」操作: #define STR_HELPER(x) #x #define STR(x) STR_HELPER(x) #define MAJOR_VER 2 #define MINOR_VER 6 #define MY_FILE "/home/user/.myapp" STR(MAJOR_VER) STR(MINOR_VER) 是否有可能與

    4熱度

    2回答

    如何編寫一個接收兩個參數的宏(例如,給出3和2)會返回以下輸出? The sum of 3 and 2 is 5 這是我寫的,但它並不編譯: #define SOMMA(x, y) puts("La somma di " #x " e " #y " e' " #(x+y)); 與 SOMMA (a, b); 與a和b出臺之前調用它...

    0熱度

    1回答

    我有以下函數foo()和宏FOO(str)。 void foo(const char *fmt, ...) { va_list args; va_start(args,fmt); vsprintf(msgbuff,fmt,args); va_end(args); printf("%s\n",msgbuff); } #define FOO(st