c-preprocessor

    4热度

    2回答

    我有一个使用C++库提供的功能的Objective-C/C++应用程序。 其中一个C++类的包括这样一个枚举: class TheClass { public: [...] enum TheEnum { YES, NO, }; [...] }; 包括(使用#import -if该事宜)与一个Objective-C/C上述类声明头文件++源文件(* .mm

    1热度

    1回答

    假设我有一个宏,FOO(名称)和一些模板类Bar <>,它接受一个参数(参数是什么类型的问题)。每次我用不同的名称打电话给FOO时,我想要获得Bar的不同实例。模板实际上并不需要能够在内部得到名称,我只需要确定不同的名称创建Bar <>的不同实例,并且始终使用相同的名称(即使在不同的翻译单元中)获得与酒吧<>相同的实例。所以这里有一个粗略的第一次尝试: template<const char* x

    1热度

    1回答

    我已经在C之前做了一个基本的解释器,其中有一个预处理器,这个预处理器花费了大量的解析负载。我想现在将这个预处理器移植到C#中使用,而且我遇到了麻烦,因为我对C#还很陌生。 我的老预处理器使它所以像 var $mine= this; //weird intendtation var $something + $a=$b; 会出来的东西相当机器可读的 var\0$min

    1热度

    2回答

    你可以看到我尝试下面的事情: typedef struct image_bounds { int xmin, ymin, xmax, ymax; } image_bounds; #define IMAGE_BOUNDS(X) ((image_bounds *)(X)); typedef struct { image_bounds bounds; float

    2热度

    5回答

    的documentation告诉我/ d命令行开关可用于执行此操作的,像这样: CL /DDEBUG TEST.C 将定义一个DEBUG符号,并且 CL /DDEBUG=2 TEST.C 会给它的值2作为 #define DEBUG "abc" 这样。 可是我该怎么办,如果我想获得一个字符串的等效定义,?

    5热度

    6回答

    所以我通过展开一些循环来优化一些代码(是的,我知道我应该依靠我的编译器为我做这件事,但我没有选择编译器)和我想稍微优雅一些​​,以防万一我的数据大小因未来的一些编辑而发生变化,代码将会优雅地降级。 喜欢的东西: typedef struct { uint32_t alpha; uint32_t two; uint32_t iii; } Entry; /*...*

    5热度

    5回答

    如何轻松/快速地使用这两种基本类型的特定选择来将浮点数替换为两个(例如)编译为两个不同的目标? 讨论: 我有大量的C#代码正在开发中,我需要根据目标程序集的用例来编译以替代地使用float,double或decimals。 使用类似“class MYNumber:Double”这样只需要更改一行代码就不行,因为Double是密封的,显然在C#中没有#define。 使用#if #else语句编写代

    2热度

    3回答

    我试图使用MSVC6上的一个/ D编译器选项来定义一个字符串,但是围绕它使用双引号有些奇怪。为了调试这个问题,我能够看到预处理器实际上代替了扩展宏的代码的价值。有什么办法可以做到这一点?我试图创建一个带有“汇编和源代码”的清单文件,但是源代码包含原始的宏名称,而ASM在那一行是一些难以理解的乱码。有没有办法在编译时获得宏值? 如果失败(或者更有用),如何使用/ D选项指定字符串?它需要用双引号替代

    2热度

    3回答

    因此,我正在将我的C++应用程序翻译成多种语言。我目前使用的是一样的东西: #define TR(x) (lookupTranslatedString(currentLocale(), x)) wcout << TR(L"This phrase is in English") << endl; 的翻译是从英文字符串翻译字符串映射CSV文件。 "This phrase is in Englis

    1热度

    4回答

    我想在编译时隐藏字符串。我知道它可以在其他预处理器中完成,但我还没有找到一种方法来处理预处理器。