stringification

    4熱度

    2回答

    我正在定義一個宏,其計算結果爲一個常量字符串,其中包含文件名和行號,用於記錄目的。 它工作正常,但我就是想不通爲什麼需要2個額外的宏 - STRINGIFY和TOSTRING,當直覺告訴只是__FILE__ ":" #__LINE__。 #include <stdio.h> #define STRINGIFY(x) #x #define TOSTRING(x) STRINGIFY(x) #

    6熱度

    2回答

    GNU的CPP允許你打開宏參數成字符串像這樣 #define STR(x) #x 然後,STR(hi)取代有"hi" 但你怎麼把一個宏(不是宏參數)轉換成字符串? 說我有一個宏CONSTANT有一些值,例如 #define CONSTANT 42 這不起作用:STR(CONSTANT)。這產生"CONSTANT"這不是我們想要的。

    23熱度

    4回答

    我在構建設置 FOO=BAR 該值欲按摩到一個Objective-C字符串文字可以被傳遞給方法中定義的預處理宏。下面的#define不起作用,但它應該表現出什麼,我想實現: #define FOOLITERAL @"FOO" //want FOOLITERAL to have the value of @"BAR" myMethodThatTakesAnNSString(FOOLITERA

    11熱度

    1回答

    #define JNI_DECLARE(classname, methodname) \ classname ## methodname(JNI* env) #define JAVA_CLASS Java_com_example void JNI_DECLARE(JAVA_CLASS, open) {} 這將擴展爲: void JAVA_CLASS_open(JNI* env)

    16熱度

    4回答

    注意:此問題與OpenCL本身無關......請檢查最後一段以獲取我的問題的簡潔說明。但要提供一些背景: 我在寫一些使用OpenCL的C++代碼。我喜歡將OpenCL內核的源代碼保存在自己的文件中,以便保持編碼和維護的簡單性(而不是直接將相關源代碼作爲字符串常量嵌入到相關的C++代碼中)。這就不可避免地導致如何在分發二進制文件時將它們加載到OpenCL運行庫中 - 理想情況下,OpenCL源代碼包

    2熱度

    6回答

    我遇到這個 #define DsHook(a,b,c) if (!c##_) { INT_PTR* p=b+*(INT_PTR**)a; VirtualProtect(&c##_,4,PAGE_EXECUTE_READWRITE,&no); *(INT_PTR*)&c##_=*p; VirtualProtect(p,4,PAGE_EXECUTE_READWRITE,&no); *p=(INT_PT

    10熱度

    3回答

    我的猜測是這個問題的答案是否定的,但如果有一種方法,它會很棒。爲了澄清,假設我有以下宏: #define MY_VARIADIC_MACRO(X...) // Does some stuff here in the macro definition 我想要做的就是以某種方式將它傳遞給一個可變參數函數之前,X的所有變量進行字符串化;這裏的關鍵字是之前。我意識到無法從宏定義中真正訪問各個參數,但是

    0熱度

    1回答

    我想在一個JSON字符串一個cookie設置的分數...... var json = JSON.stringify({ s:{score:2000,name:"Michael"}, s:{score:1000,name:"Tito"}, s:{score:500,name:"Jackie"}, s:{score:100,name:"Marlon"}, s:{score:10,na

    9熱度

    2回答

    我想在與其他連接之前評估一個令牌。 「問題」是該標準規定了行爲 進行復核之前更換名單更宏觀的名稱來代替 ,一個##預處理標記的每個實例替換 列表(而不是從一個參數)被刪除,並且前面的預處理令牌與以下預處理令牌連接在一起。在下面的例子中 因此, #include <stdlib.h> struct xy { int x; int y; }; struct somethi

    0熱度

    1回答

    假設我有一些宏#define NAME name,並且我想定義一些其他的宏,這些宏將擴展到引用的值。就是說,如果我也定義了#define NAME_STR "name"。有沒有比以下更好的方法? #define QUOT(str) #str #define QUOT_ARG(str) QUOT(str) #define NAME_STR QUOT_ARG(NAME)