问题标签 [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 投票
2 回答
8395 浏览

c - 将某些东西同时作为 C 标识符和字符串?

假设您要生成匹配的标识符和字符串列表

..无需重复,无需自动生成代码,使用 C/C++ 宏

初步猜测:

您可以添加一个 #include 文件,其中包含

然后像这样使用它两次:

但是#define 不允许您将参数放在字符串中?

0 投票
4 回答
4534 浏览

c# - c#预处理器指令作用域

我正在寻找使用:

允许我在单元测试期间模拟可能不存在的硬件。使用#define语句的规则是什么?

即它的默认范围是什么?我可以更改指令的范围吗?

0 投票
6 回答
9155 浏览

metaprogramming - 你可以嵌套 C 预处理器指令吗?

例如,以下是否可能:

0 投票
4 回答
20474 浏览

c - C 预处理器测试多个宏的定义性

我搜索了该网站,但没有找到我正在寻找的答案,所以这里是一个非常快速的问题。

我正在尝试做这样的事情:

我怎么能做这样的事情?我知道 _WIN32 是为 32 位和 64 位窗口定义的,所以对于 Windows 检测我都可以。我更感兴趣的是我是否可以将这样的逻辑运算符与预处理器指令一起使用,如果可以,如何使用,因为上述方法不起作用。

用 gcc 编译我得到:

警告:#ifdef 指令末尾的额外标记,它基本上只接受第一个 MACRO 而忽略其余部分。

0 投票
8 回答
39906 浏览

c++ - 在#define 宏中转义# 符号?

在不涉及血淋淋的细节的情况下,我想使用一个#define将扩展为 a#include但“#”符号使预处理器感到困惑的宏(因为它认为我想引用一个参数。)

例如,我想做这样的事情:

并这样使用它:

这将扩展到:

不起眼的 # 符号导致预处理器出错。MinGW 给我以下错误:

'#' is not followed by a macro parameter

我想我需要转义 # 符号,但如果这是可能的,我不会。

是的,宏确实是邪恶的......

0 投票
3 回答
9378 浏览

c++ - 预处理器宏扩展为另一个预处理器指令

最初我认为我需要这个,但我最终避免了它。然而,我的好奇心(以及对知识的渴望,哼)让我问:

预处理器宏可以吗,例如在

扩展到另一个包括,例如

?

0 投票
4 回答
354 浏览

c - 这些编译器指令有什么区别?

这些指令之间有什么区别(如果有的话)?

我正在使用 CCS 编译器,但我也对其他C编译器感兴趣。

0 投票
6 回答
11605 浏览

c - #define, #ifdef #undef #endif

我有以下代码

但是,它将运行代码。但它不会在未定义else之后运行代码。PROC_ADD

我认为原因可能是您只能在编译时定义和取消定义,而不是在运行时。但是,我不确定。

0 投票
6 回答
30698 浏览

c - C语言中#line是什么意思?

#lineC语言中是什么意思?它会用在哪里?

0 投票
9 回答
13744 浏览

c-preprocessor - 为什么有人会使用#if 1 C 预处理器指令?

我正在浏览一些C源代码,但我不明白以下部分

为什么会有人这样做#if 1?不是只有第一个块会被处理吗?