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

c - 预处理器指令#include 可以禁用/排除吗?

例如:如果我有两个 .h 文件

进程1.h 和进程2.h

它们包含两个具有不同输出变量的函数。

进程1.h:

进程2.h:

这可以在 main.c 中完成吗:

0 投票
3 回答
190 浏览

c++ - 为您的程序添加类似 C/C++ 的预处理能力

我有一个处理输入文件的 C++ 程序。我想为我的程序添加预处理能力。也就是说,输入文件看起来像:

然后我的程序应该自动包含父文件中的文本,执行#define 内容和其他预处理。我可以在调用我的程序之前使用脚本(使用 g++ -E),但我希望能够在我的程序中执行此操作,因为这样可以提供更大的灵活性。

当“实际文件内容”部分中的行以散列开头时,“g++ -E”将假定一个预处理器指令(g++ -E 不知道我想将我的代码分成 2 个部分!)。

此外,如果我可以在“实际文件内容”部分中使用 ifdef 功能,那就太棒了。

我可以在我的程序中嵌入 C++ 代码以仅使用 gcc 编译器的预处理功能中我想要的功能吗?

0 投票
4 回答
296 浏览

objective-c - Objective c中不同类型屏幕的预处理器指令?

我需要区分我的 iPhone 应用程序中的视网膜屏幕或普通屏幕,类似于以下内容:

任何想法?

0 投票
4 回答
7121 浏览

c++ - #if 在 #define?

我坐在一些通过#defines 生成大量代码的遗留代码上。现在我知道不可能有一个#ifdef内部 a #define,但有#if可能吗?我想为特定类型添加一些专业化。(无需进行重大更改,例如使用模板)。以下示例给了我神秘的错误,所以这不是方法:

0 投票
3 回答
181 浏览

ios - 使用编译器条件来控制委托实现?

是否可以使用编译器指令来控制是否实现了特定的委托?

例如,在下面的代码中,如果我们定义了一个常量,我只想包含一个库:

如果kShouldLoadFromCSV未定义,我不想实现CHCSVParserDelegate. 我尝试在接口声明中添加编译指令,但没有奏效。

有没有办法做到这一点?

0 投票
3 回答
7083 浏览

c - ifndef 问题,警告 [Pe014]:预处理指令预期结束后的额外文本

错误信息:

警告[Pe014]:预处理指令预期结束后的额外文本

0 投票
1 回答
147 浏览

c++ - #if 我可以(不能)做什么?

我在config.h 中定义了一堆预处理器配置选项。我像这样使用它们:

config.h包含他们的定义:

以上不起作用。我想根据配置(调试、发布等)和/或其他定义打开和关闭这些配置选项。如果我这样做,它也不起作用:

#if CONFIG_OPTION1即使条件看起来应该满足,我也永远不会进入。当我写#if defined(_DEBUG)它时,它工作正常,但#if使用宏作为条件失败。我怎样才能解决这个问题?

0 投票
3 回答
179 浏览

c++ - 是否存在处理预处理器指令并提供实际预处理器输出的工具?

可能重复:
预处理器输出

我发现自己正在为 Android 调试 STL Port。它自始至终使用许多(10-100?)预处理器指令来决定预处理器实际输出的代码。很多#if#ifdef块。

是否有可用的工具可以运行这些并显示实际发送给编译器的文本?是否可以看到预处理器的输出?

0 投票
1 回答
302 浏览

c++ - 根据编译时常量,使用相同的标识符#define'd 或 typedef'ed 是否被认为是可接受的做法?

英特尔数学核心函数库在头文件中包含以下代码:

here所述和here所讨论的,用户可以通过编写来覆盖此结构定义

在包含头文件之前。有了这一行,MKL_Complex16is #define'd,这意味着字符串只是在std::complex<double>任何地方都被文字字符替换。如果不是,则为typedef'ed,这会为编译器提供更多信息。

这被认为是可接受的做法吗?我想它一定是,因为它是由英特尔实现的。但是我在尝试调试一些代码时发现它非常混乱。

0 投票
2 回答
23527 浏览

objective-c - Xcode 中未终止的条件指令

这里有什么问题:

为什么我会收到此错误?