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

c++ - #ifndef 不让我的文件看到标题中的内容(C++)

所以我创建了一个二叉树类,我想通过将类定义放在 .h 文件中并将函数定义放在 .cpp 文件中来将类定义与其成员函数定义分开。然后我会将 .h 文件包含到 .cpp 文件中。现在我得到了所有的工作,它工作正常。问题是当我想输入包括警卫在内的名字时。因为我需要在成员函数 .cpp 文件和另一个使用二叉树类的 .cpp 中包含 .h 文件,所以我必须包含这些守卫。但是由于某种原因,一旦我将它们都包含在内,两个 .cpp 文件似乎都不会“看到”头文件的内容。我是使用 ifndef 的新手,所以我很确定我做错了什么。谢谢你

这是名为node.h的头文件:

这是名为 node.cpp 的成员定义文件

错误:

这是试图实现名为 P0.cpp 的二叉树类的类:

错误:

0 投票
1 回答
35 浏览

go - 需要对 Go Lang 的索赔进行验证

我最近一直在研究 GoLang——来自 C++ 背景——我正在阅读一篇论文,据称它解释了制作 Golang 背后的原因,这里是它的链接:https ://talks.golang.org/2012/splash.article

其中一个主张是,在 C 和 C++ 中处理依赖项(包)是很痛苦的,并且需要一个#ifndef保护实例来声明

目的是 C 预处理器读取文件,但忽略文件的第二次和后续读取的内容......

我引用了一个 GCC 页面,https://gcc.gnu.org/onlinedocs/cppinternals/Guard-Macros.html

因此,如果头文件出现在随后的 #include 指令中并且定义了 FOO ,那么它将被忽略并且不会预处理甚至重新打开文件第二次

Go:“读入并忽略”与 GCC:它不会预处理甚至第二次重新打开文件。

不矛盾吗?

感谢您的想法。感谢您阅读我的问题。

0 投票
1 回答
52 浏览

arrays - 关于#ifndef 和macro_function

我已将编译器从 msvc 更改为 mingw,

宏功能:_countof未包含在 mingw <stblib.h> 或 <stdio.h> 中

也许它只适用于 msvc,

所以,我必须自己将定义添加到头文件中,

我不确定下面的代码:

看来这种写法并不常见。

0 投票
0 回答
71 浏览

c++ - #ifndef 错误:需要更新包含路径

我的头文件“broker.h”是

#ifndef BROKER中出现错误,因为“存在 #include 错误。请更新 includePath。”

我的 c_cpp_properties.json 是

在此处输入图像描述

我的项目文件夹位置是

在此处输入图像描述

但是,我的包含路径是正确的,当我只是一个简单的 HelloWorld.cpp 时没有错误。为什么#ifndef 中有错误?