带 if 语句的 C 预处理器
我有以下宏: #define IF_TRACE_ENABLED(level) if (IsTraceEnabled(level)) 用户代码应如下所示: IF_TRACE_ENABLED(LEVEL1) { ... some very smart …
是否有标准化的方法来获取 C++ 中的类型大小(以字节为单位)?编译器?
我想知道是否有某种标准化方法可以在预处理器阶段获取内存中的类型大小 - 因此在宏形式中, sizeof() 不会削减它。 如果它们不是标准化方法,那么大多…
为什么在宏中使用明显无意义的 do-while 和 if-else 语句?
在许多 C/C++ 宏中,我看到宏的代码包裹在看似无意义的 do while 循环中。以下是示例。 #define FOO(X) do { f(X) g(X) } while (0) #define FOO(X) i…
#define 带参数...为什么这样有效?
这是怎么回事? #define CONSTANT_UNICODE_STRING(s) \ { sizeof( s ) - sizeof( WCHAR ), sizeof(s), s } . . . . UNICODE_STRING gInsufficientReso…
用于检测 iPad 的预处理器指令
我在头文件中声明了一些常量,这些常量需要根据它是 iPad 应用程序还是 iPhone 应用程序而有所不同。我该怎么做? IE #ifdef ISIPAD static NSString …
在 Intel C++ 上检测 C++0x 模式?
使用 Qstd=c++0x 编译时,Intel C++ 是否预定义了一些宏? GCC 中类似 __GXX_EXPERIMENTAL_CXX0X__ 的东西? __cplusplus 仍然是 199711。 有什么方法…
如何在 C 中 #define 数组?
以下定义数组的语法在 C 中是否有效? #define array[] { \ for (j=0 j<N_frequencystepsj++) \ { \ array[j] = (function) \ } \ } 如果没有,如何…
在编译器命令行上传递绝对路径作为预处理器指令
我想通过 /D 定义将 MSVC++ 2008 宏传递到我的程序中, /D__HOME__="\"$(InputDir)\"" 然后在我的程序中我可以这样做 cout << "__HOME__ => " &…
这个地址(0x00000400) = 1024怎么办
我使用 C++ 工作,并且有一个 #define VAL 0x00000400。当我设置一个等于定义的变量时: int value = VAL当我运行调试器时显示变量值 = 1024。有人可…
C 预处理器宏:检查 token 是否已声明
这是针对 C 预处理器专家的: 我如何声明一个带有一些标识符列表的 enum ,然后在 switch 语句中检查列表中是否包含标识符? 我需要的示例: typedef …
如何在 Intel C++ 上获取 __FILE__ 作为绝对路径编译器
我尝试使用与 Visual Studio 一起使用的 /Fc 标志,但收到一条消息,指出英特尔编译器无法识别它。 我正在尝试编写一个测试,该测试使用相对于 cpp 测…
如何通过 #define 函数向格式化字符串函数调用添加参数
我想创建将参数插入函数调用的宏。例如,我在下面声明了函数 Action()。 Action 采用状态编号的枚举和带有可选字符串参数的格式化字符串作为输入。 我…