c-preprocessor

    1热度

    2回答

    我已用于创建测试功能的以下几个Ç预处理器宏: // Defines a test function in the active suite #define test(name)\ void test_##name();\ SuiteAppender test_##name##_appender(TestSuite::active(), test_##name);\

    0热度

    3回答

    我正在从Visual Studio 6迁移到Visual Studio 2008,并且我有一个使用名为SetDefaultPrinter的组件的功能。 不幸的是,现在有一个windows库函数,SetDefaultPrinter,具有相同的名称。与此相关的宏正在妨碍我使用我的功能。 这是我的解决办法我有打电话给我的功能: #undef SetDefaultPrinter pNova->S

    1热度

    3回答

    我有一个本机C++程序,它使用“事件队列”在不同的线程上执行函数。我在堆上分配一个“事件”类,并将其放在我的一个线程队列中执行。 这一切都很好,但追溯这些“事件”的起源非常困难。我希望每个“事件”都存储一些与其来源相关的信息。现在我使用固有的_ReturnAddress(),但我也想要文件名字符串和行号。我很好用宏来安排我的“事件”。 当然,我不想为这些字符串付出代价。 有没有什么办法让预处理器建

    18热度

    4回答

    语法禁用警告什么如下: #pragma warning disable 414, 3021 或者,表达更普遍: #pragma warning disable [CSV list of numeric codes] 是否有这些数字的列表代码和他们正在抑制的警告的描述?很令我懊恼的是,我似乎无法通过谷歌找到它。

    10热度

    6回答

    在我的史诗追求使C++做的事情不应该,我试图把编译时间生成的类放在一起。 基于预处理器的定义,如(粗略的概念) CLASS_BEGIN(Name) RECORD(xyz) RECORD(abc) RECORD_GROUP(GroupName) RECORD_GROUP_RECORD(foo) RECORD_GROUP_RECORD(bar)

    3热度

    3回答

    我们正在为我们的iPhone应用程序添加CoreData支持。这是一个深远的变化(从SQLitePersistentObject移动)。为避免分支,我们使用#ifdef块内的新代码运行单个代码行。 当我从我的头文件(#define CORE_DATA_BUILD)启用此代码时,一切正常。当我创建一个新目标并在那里定义我的预处理器宏时,系统头文件中会出现错误。特别; CFBag.h,CFArray.

    41热度

    5回答

    我搜索了网站,但没有找到我正在寻找的答案,所以这里是一个非常快速的问题。 我试图做这样的事情: #ifdef _WIN32 || _WIN64 #include <conio.h> #endif 我怎样才能做这样的事情?我知道_WIN32是为32位和64位窗口定义的,所以我可以用于Windows检测。我更关心的是,我是否可以像预处理器指令那样使用逻辑运算符,如果是的话,因为上述方法

    2热度

    3回答

    我在看一些开源项目,我看到以下内容: NSLog(@"%s w=%f, h=%f", #size, size.width, size.height) 到底是什么尺寸符号之前对“#”是什么意思?是字符串的某种前缀C?

    4热度

    3回答

    我需要 String str_any_name = getFunction("any_name"); 困难的部分是如何修剪掉引号替换 GET("any_name") 。可能?有任何想法吗?

    3热度

    2回答

    将宏名称作为其他宏的参数来模拟高阶函数是否“安全”? I.e.我应该在哪里寻找不要在自己的脚下拍自己? 下面是一些片段: #define foreach_even(ii, instr) for(int ii = 0; ii < 100; ii += 2) { instr; } #define foreach_odd(ii, instr) for(int ii = 1; ii < 100; ii