stringification

    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) {

    0熱度

    1回答

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

    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熱度

    2回答

    我正在使用openCL C++綁定的項目中工作。我有一個從主機端讀取並加載並執行的kernel.cl文件。但是現在我想將它嵌入到我的.cpp文件中,這樣我就可以在沒有kernel.cl文件的情況下分發二進制文件。 我應用了STRINGIFY方法,但是我不知道還有什麼可以改變以及要更改哪些代碼行? 以前的代碼: 的main.cpp // Load in kernel source, creating

    1熱度

    2回答

    我必須維護具有通用組件和產品特定組件的C代碼。我想簡化我的代碼,這樣我只有一個通用product.h文件,其中有像 #if (PRODUCT_ID == 1) #define PRODUCT_NAME Product1 #else #if (PRODUCT_ID == 2) #define PRODUCT_NAME Product2 #else

    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

    0熱度

    3回答

    我試圖在System Verilog中對宏進行串聯處理,以便我可以在字符串中使用它進行打印。 我創建了一個字符串化宏: `define STRINGIFY(x) `"x`" 的建議在這裏: How to create a string from a pre-processor macro 不過,我試圖字符串化宏帶有參數。 考慮下面的代碼: `define STRINGIFY(x) `"x`"

    2熱度

    2回答

    #include<stdio.h> #define DEF6 625 #define DEF6 625 #define DEF(n) DEF##n void main(){ printf("%d\n", DEF(6)); } 此代碼有效。 但是 #include<stdio.h> #define DEF6 625 #define DEF(n) DEF##n v

    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