问题标签 [ifndef]

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 回答
833 浏览

c++ - namespace::variable 的多重定义,即使使用 ifndef

我知道我在这里一定做错了什么。

排名.h

排名.cpp

主文件

以及编译的输出;

我的理解是头文件被多次包含。但我希望通过使用#ifndef.

那么,请问这里是怎么回事?

0 投票
3 回答
149 浏览

c - 在 C 中包含守卫

我有 2 个必须包含另一个的头文件。

配置.h:

调试.h

这是我得到的错误:

debug.h:错误:未知类型名称“配置”

config.c:警告:函数“somePrintingFunction”的隐式声明

debug.h:错误:未知类型名称“配置”

我猜它在标题声明中循环?


编辑:

修复了合并两个文件以简化项目设计。如果您想要真正的修复,请查看评论。

0 投票
1 回答
53 浏览

c++ - Conditional Compile of const static arrays

I am trying to create an error enum and associated text descriptors aligned in the same file. I have a system.cpp file that contains the following:

The file myerrors.h contains:

I include system.h in all sources that need error services and they do not define SYSTEMCODE.

I expect that only the system.cpp file will compile the text array and all others will simply have an extern reference. The system.cpp object does not have the _errtext array thus causing a link error. I disable pre-compiled headers and I have tried many variations of this. MSDEV does not get it right.

Any ideas?

0 投票
4 回答
182 浏览

c++ - 我可以/应该在#ifndef 之后输入我想要的任何内容吗?

例子:

而不是HEADER_h,我可以执行以下操作吗?

#ifndef HEADER

或者

#ifndef LIBRARY

或者

#ifndef SOMETHING

或者

#ifndef ANOTHERTHING

等等

0 投票
2 回答
57 浏览

c++ - ifndef 不工作;我有一个包含两次的头文件

我的 Ifndef 不工作。我在两者中都包含两次 MapData.h:Generate.cpp 和 Risky Strats.cpp

地图数据.h:

生成.cpp:

有风险的 Strats.cpp:

我一直收到同样的错误:Generate.obj 中已经定义了类字段战场”(?battleground@@3Vfield@@A)

0 投票
0 回答
24 浏览

macros - 为什么 C(++) 预处理器允许定义宏但不检查它是否未定义?

如果我有这样一个简单的陈述:

我得到一个编译错误...

但如果我写(说):

我没有问题 - 为什么可以定义此宏但无法检查它是否未定义?这似乎有些奇怪。

0 投票
2 回答
111 浏览

c++ - 当别名定义为“const int alias = variable”而不是#define时使用ifndef时重新定义错误

const UInt8 HE = he;在. namespace Ports_ ports.h然后我把它包含在ports_logic.h里面ports_logic.h,里面有下面的代码namespace Ports

但是在编译期间,它给了我以下错误。

在此处输入图像描述

有什么替代方法ifndef可以帮助我检查是否const int HP已经定义?

谢谢。

0 投票
2 回答
49 浏览

c++ - #define c-preprocessor constants ...我做错了什么?

我再次尝试使用 arduino 并创建一个小模块,只是为了熟练掌握 cpp sintaxe。

我正在尝试使用静态方法创建实用程序模块,并使用标头常量来决定是否必须打印调试消息。

但即使使用#ifndef 来避免重复,我也没有工作

在模块 DataMattersUtil 中,我使用 #ifndef 将标头常量 DATA_MATTERS_DEBUG 设置为 false 以避免重复。但是当我执行此代码时,该消息不会在串行监视器上打印,因为该常量始终为 false,即使在第一个执行的模块 DataMattersRunner.ino 上将其设置为 true。

文件:DataMattersRunner.ino

文件:DataMattersRunner.cpp

文件:DataMattersRunner.cpp

文件:DataMattersUtil.h

0 投票
1 回答
88 浏览

c++ - c++前向声明+ifndef也需要指针

大批:

目的 :

价值 :

我正在尽我最大的努力学习 C++。凭借我对 C++ 的一点点了解,我正在尝试编写一些代码。我移动 C++ 的第一个原因,指针需要很多时间。

在这里,我正在编写这些代码,其中需要前向声明,因此即使在使用前向声明和 ifndef 之后,我也需要使用指针,我真的不想要。

谁能真正帮我解决这个问题,我怎样才能消除循环依赖?

我需要回到C吗?

使用指针时,我遇到了很多问题,例如,我的地图中只有一个键值对,但在下一行,大小变成了一个非常大的数字,不知从何而来。

main 里面的代码:

带有 Object 参数的 Value 的构造函数:

0 投票
1 回答
213 浏览

c - 在编译命令中包含头文件时出现编译错误

我有两个文件main.cheader.c.

main.c有一些宏STR,我想根据#define文件中的一些有条件地定义它。

案例一

当我包含header.cmain.c文件中时,程序运行良好,如下所示:

主程序

头文件.c

汇编

案例2

但由于某种原因,我想包含header.c在 compile 命令中,而不是包含在main.c. 这为我创造了这个问题,如下所示:

主程序

头文件.c

汇编

我对这个问题做了很多研究,并且能够理解为什么会出现这个问题。但我无法解决这个问题。

请帮助我更好地理解这个问题并提出一些解决方案。也帮助我改写问题。