问题标签 [preprocessor-directive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
8293 浏览

c++ - #line 是什么意思?

以下行有什么作用?

扩展名是什么?

0 投票
2 回答
2027 浏览

c++ - 将代码从 Linux 移植到 MinGW

我正在编写一个可以在 PC 上创建/删除/重命名/搜索文件和目录的小类。

我成功编写了课程并在 Linux 上运行。

当我试图在 MinGW 中运行相同的类代码时,它给出了一个错误。我可以缩小到:Linux 中的 mkdir 函数,Cygwin 有 2 个参数(目录名、模式权限),但在 MinGW 中只有一个参数(目录名)。

我的查询是:a)使代码在两个操作系统上工作的最佳方法是什么。b) 虽然我从未使用过,但我听说预处理器指令可以像 #ifdefined .....#endif .. 或类似的东西 c) 使用预处理器指令是一种很好的编程习惯。据我所知,应尽量少使用预处理器指令。

有人可以帮助我吗:

这是我在 Linux 和 Cygwin 上运行的代码:

0 投票
1 回答
6070 浏览

c++ - 标记“(”之前缺少二元运算符

错误:

代码:

问题:

  1. 编译器正在等待一个新的defined()调用?
  2. 它可以检测到任何 linux(和变体)或 windows 版本吗?

提前致谢。

0 投票
2 回答
12739 浏览

objective-c - Xcode 中 #elseifdef 的预处理指令无效

为什么:

产生“无效的预处理指令”预处理编译错误?

SOME_TARGET_FLAG 和 SOME_ANOTHER_TARGET_FLAG 只是在目标构建设置(-D<FLAG_NAME>模式)中定义的一些“其他 C 标志”。

Xcode 不支持#elseifdef指令吗?

0 投票
1 回答
472 浏览

c++ - #define 指令有多个替换?

我对编程比较陌生,我正在尝试学习在 C++ 中使用 wxWidgets(使用 Visual Studio 2010)。

我正在查看 wxWidgets 头文件“app.h”,我看到了一些#define我无法理解的指令。这是一个例子:

我习惯用一个“标识符”和一个“替换”看到#define,所以我不明白这个宏是有两个“标识符”(wxIMPLEMENT_APP(appname)wxIMPLEMENT_WX_THEME_SUPPORT)和一个“替换”(wxIMPLEMENT_APP_NO_THEMES (appname)),还是一个“标识符”(wxIMPLEMENT_APP(appname)) 和两个“替换”(wxIMPLEMENT_WX_THEME_SUPPORTwxIMPLEMENT_APP_NO_THEMES(appname))。

我如何理解这个宏?

我尝试在网上和教科书中查找,在“宏”、“预处理器指令”、“文本替换宏”、“#define 指令”等类似内容下进行搜索,但我找不到任何带有解释的示例,看起来像我这里有一个。

0 投票
1 回答
224 浏览

c - Haskell外部函数接口中的'#type'是什么意思?

sendfile我在 Haskell包中找到了这段代码:

http://patch-tag.com/r/mae/sendfile/snapshot/current/content/pretty/src/Network/Socket/SendFile/Linux.hsc

1) 是什么#type意思和 2) 为什么我会收到这个错误,

当我自己尝试如下使用它时?:

拼接.hs:

(使用 GHC 7.4.x)

0 投票
2 回答
5967 浏览

c# - 使用构建配置在 Visual Studio 中创建项目的多个版本

我需要使用配置创建项目的多个版本,就像我们使用#define, #if, #endif.

使用这些预处理器指令的缺点是我需要在项目的几乎每个文件中定义符号,但我想通过我的构建配置来处理这个事情。

我什至不确定构建配置是否会帮助我做到这一点。

我想要的是,如果我创建一个名为“Development”的配置和另一个名为“QA”的配置,我的代码将如下所示:

请指导我实现这一目标。

0 投票
5 回答
7701 浏览

c++ - C++ 编译时宏来检测 Windows 操作系统

是否存在任何 C++ 编译时宏来检测正在编译代码的 Windows 操作系统。我基本上只想在Win7上支持某些功能。所以我有兴趣做这样的事情

有没有其他更好的方法来做到这一点?

0 投票
2 回答
137 浏览

c - 是否有编译器指令来替换常量的一部分

我现在正在为微控制器使用嵌入式 C,我发现有时有几个外围设备只有一个字母不同(例如 UARTA、UARTB 等)。除了其他相同的寄存器的字母外,每个外围设备的代码通常都是相同的。例如,设置外围 AI 会执行以下操作:

并且设置外设 BI 具有完全相同的代码,除了寄存器名称由 1 个字母转置:

我希望能够更改目标外围设备,而无需#ifdef/复制/粘贴代码或查找/替换。是否有一些编译器指令或巧妙的技巧可以实现这种行为,这样我只需编写一次代码?我很想只 #define 外围设备中的最后一个字母,但类似的东西似乎危险地徘徊在靠近代码的地方,对我来说很臭。

0 投票
1 回答
290 浏览

windows-7 - 确定操作系统是否为 WIN 7 SP1 的 #if 预处理器指令是什么?

我想根据编译机是否运行 Windows 7 SP1 进行条件编译。

我们有http://support.microsoft.com/kb/2517589的解决方法,但我不想检查代码,除非它由 #ifdef _WIN7_SP1 保护,否则其他开发人员将无法编译它在他们的非 win7-sp1 机器上。

我有一点谷歌,但找不到任何有用的东西。