包含另一个目录中的头文件
我有一个主目录 A 和两个子目录 B 和 C。 目录 B 包含头文件 structurals.c: #ifndef __STRUCTURES_H #define __STRUCTURES_H typedef struct __stud…
获取函数名称作为符号(而不是字符串) - C 预处理器
C 中有没有办法获取可以使用标记粘贴的函数名称 (我知道 __FUNCTION__ 和 __func__,但它们在预处理时不会扩展为名称, 我不希望名称作为字符串)。 …
尝试将 #define DEBUG_MODE 添加到我的 prefix.pch 文件时出现编译器警告
我试图弄清楚如何在构建要发布的项目时从项目中删除调试日志记录,并在这里找到了一个出色的线程: 人们不应该在生产代码上使用 NSLog() 是真的吗? …
用宏找出C中数组的大小
我很难理解这个宏是否做了它应该做的事情。它位于我正在包装的第三方 dll 中。 #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #…
C/C++宏观评价顺序
可能的重复: C 预处理器,字符串化宏的结果 很快: #include float pi(){ return 3.14; } #define PRINT(x) std::cout << #x << std::endl; #define…
如何在预处理器中仅获取文件名?
我(曾经)使用 __FILE__ 和 __LINE__ 宏从我的代码中打印诊断消息。当您将 GCC 与 make 一起使用时,这非常有效,文件与您在命令行上指定的一样短。…
如何在编译时检查标志是否存在?
我使用 -LITTLE 标志来选择 little endian 计算和 -BIG 用于编译时在我的项目中进行大端计算。 #ifdef LITTLE { // i'm using i for operating one lo…
#include 指令可以放在文件开头以外的地方(例如循环内)吗?
可能的重复: #include 任何地方 对于相应的语言,以下内容是有效的(可接受的编程实践): #include "SomeHeader.h" #include "HeaderDefs.h" //Inc…
通过预处理器指令检查变量的类型
有没有办法通过预处理器检查变量的类型? 实际上我想做这样的事情: //test.c int main(void) { TYPE a=6; #if TYPE==int printf("%d\n",a); #elif TY…
什么时候应该使用 #ifdef 而不是 if()?
在 Objective-C 中工作时,什么时候适合使用预处理器指令,例如 #ifdef、#if、#ifndef 和 #define 而不是 if() 等语句 和 switch()?…
C 错误:宏名称后缺少空格
我编写了以下宏: #define m[a,b] m.values[m.rows*(a)+(b)] 但是 gcc 给了我这个错误: error: missing whitespace after the macro name 出了什么问…