问题标签 [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.
c++ - #if 预处理器指令可以嵌套在 C++ 中吗?
我对 C++ 中的预处理器指令有疑问:
例如:
我们可以这样使用吗,C++编译器能正确匹配ifndef
andendif
吗?
c++ - #ifdef 1 在 C++ 中是什么意思
在 C++ 中,我知道程序员#ifdef 0
用来阻止代码运行,但在同一个项目中,我看到了很多#ifdef 1
. 这是否意味着代码总是运行?不幸的是,代码无法编译,所以我不能只运行和测试!
c - 程序执行是否总是从 C 中的 main 开始?
程序执行必须从main开始,还是可以修改起始地址?
该程序in fun
在in main
.
c++ - 在 C++ 中使用#undef
我正在研究 GSL 库中的一段代码,并且对头文件开头的几行感到困惑。我了解#undef、#ifdef 等的作用,但我不明白的是,为什么他们基本上重置了 _BEGIN_DECLS 的定义,然后再继续定义它?从技术上讲,不应该有任何先前的定义,对吧?我的意思是,这些东西是静态的,不会发生变化。无论如何,这是代码的摘录:
objective-c - 如何在#ifdef 中编写if 条件。用于分期。在客观-c
我需要在此调用Staging中再添加一个条件..
在这种情况下如何做。
另一个是MyApp_Staging
需要包含在这个if条件中怎么做?
c-preprocessor - 不区分大小写#define
是否可以使用预处理器发出不区分大小写的#define 语句?
例如,我想将 foobar 的任何大小写转换为 spameggs,即:
这背后的原因是我想 #define 一些 fortran 子例程以具有不同的名称,它们当然不区分大小写。请注意,我并不真正关心保留大小写方案(在最后一个示例中似乎有点胡说八道)。
c++ - 预处理器指令“使用”
根据我之前学习C的知识,我知道预处理器指令如#include
,#define
不是语句,这就是为什么顾名思义,它是程序编译之前的过程,因此我们不需要在;
末尾附加 a它。
在 C++ 中,它向我介绍了一个新指令,即using
,但为什么该指令会附加分号?我认为这就像我之前学习的指令一样,它不是一个声明?
xcode - Xcode:宏破坏完成/突出显示
来自Xcode 文档:
语法高亮、代码完成和所有其他索引驱动的特性都由 LLVM 解析器处理。如果编译器知道符号,那么 Xcode IDE 也知道。
但是在预处理器指令中编写代码时,这些“索引驱动的功能”都不适合我。有人对此有解决方案吗?
例子:
在打开未使用参数警告的情况下进行构建时,即使使用了所述参数,也会生成大量警告。此特定屏幕截图中的代码来自 Apple Reachability.m
,未经修改。请注意,这里也不存在语法高亮:
里面的正确#if
补全:
但是,里面的补全不正确#else
:
它一半适用于局部变量:
但是在调用当前方法范围之外声明的内容时再次中断:
谁能告诉我如何(或即使)这可以解决?
visual-studio-2010 - 不同项目中不同文件的预处理器指令(常量)
是否可以在 Visual Studio 2010 的不同项目中为不同的文件提供一些预处理器指令常量?这是我正在尝试做的一个例子:
在项目“A”的文件“1”中,我定义:TIMEDISPLAYING
在项目“B”的文件“2”中,我检查了TIMEDISPLAYING:
我知道在项目文件中我可以添加我的自定义常量。解决方案文件中是否有可以添加类似内容的地方?或者导入我所有自定义常量的其他类型的文件?
我目前在一个类中定义了布尔常量,但我希望我的代码基于常量编译,而 DEBUG 对我来说还不够。如果定义了 DEBUG,我的下一个解决方案是添加我的布尔常量:
我在这里的最后一个解决方案有什么替代解决方案吗?非常感谢任何帮助。
c# - #if(DEBUG) and log4net line number source/runtime mismatch
When I use preprocessor directives like
it causes that at runtime the line numbers in the log (eg. stack trace) are incorrect - in the above example line 9 would become 4 because the rest would be parsed by the preprocessor.
It makes log analysis quite difficult.
Is there a way to solve this issue without creating methods with ConditionalAttribute
?
I'm aware of Debugger.IsAttached
(and I'm using this solution now) but I would prefer to run code based on the build mode (debug/release) not on whether the debugger is attached.