问题标签 [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.
c - C 和 Delphi 中的条件编译
下一个模式在 C 代码中很常见:
该模式在 Delphi 代码中也是可能的:
但这并不常见——我从来没有见过。如果 Delphi 代码需要条件定义,它只是定义它而不IFNDEF
检查。
为什么这样?C和Delphi之间的条件编译有什么区别,因此ifndef
前者需要检查而后者不需要检查?
c - 预处理器#ifndef
假设我有a.h
以下内容:
假设我也有b.h
其中还包括<stdbool.h>
. 如果a.h
其中有#ifndef
预处理器定义语句并且b.h
没有。将a.h
仅包含未包含的内容b.h
?那么当b.h
包含时a.h
,将a.h
包含stddef.h
和stein.h
不重新包含stdbool.h
,还是那些预处理器定义函数仅用于查看整个类是否被重新定义,而不是其中的特定函数?
编辑:
此外,假设b.h
包含另一个头文件,其中包含-stdbool.h
使得该类和. 这会导致错误吗?b.h
stdbool.h
a.h
c - 如何在 makefile 构建中启用“#ifndef/#endif”块?
我正在尝试在 MuPDF 中启用调试选项。出于某种原因,他们使用了我想使用的代码#ifndef NDEBUG
并将其灰显。#endif
我搜索了整个库,但找不到任何地方定义的 NDEBUG 痕迹。我已经设法通过添加标题来解决这个#undef NDEBUG
问题,但我想知道是否有更非侵入性的方法可以做到这一点。
那么,你能从makefile中启用“#ifndef/#endif”块吗?
另外,你为什么要用#ifndef
灰色的代码?不应该是#ifdef NDEBUG
吗?
c++ - C++ 尝试使用 #ifndef 和 #include 语句
好的,所以我是一名 HTML/Javascript/PHP 专业人士,但我正在尝试学习 C++。我还是个新手,我有一个 C++ 编程项目,但我有错误。
包含 int main() 的文件是“football.cpp”,我有三个必须使用的类的 .h 和 .cpp 文件:Game、Team 和 Date。每个 Team 实例都包含一个 Games 向量,每个 Game 包含一个 Date。Date 不包含任何其他类的实例。
我正在尝试找到一种在文件顶部使用 #include 和 #ifndef 语句的方法,以便在编译时不会出错,但我还没有找到有效的组合。我不确定是否还有其他错误。这是我当前的#include 部分,不包括其他库:
足球.cpp
团队.h
团队.cpp
游戏.h
游戏.cpp
日期.cpp
我使用 Cygwin g++ 编译器,我用来编译它的行是:
这是我得到的所有错误:(警告,文字墙)
如果需要进一步澄清,将进行编辑,尽管我认为不会。
任何帮助将不胜感激。
c++ - #ifndef 如何在不同文件中工作
所以我试图将我在 main.cpp 中声明的库包含到我的 header.h 中
这会检查我的 main.cpp 以查看 3 个库和命名空间是否存在相应的变量 HANOI_H?
ios - ifndef,定义和直接分配常量
我只是在考虑以下方法之间的区别,同时定义常量:
方法1: 创建一个头文件来定义所有的常量,使用include guard:
然后将常量分配给函数:
方法2: 只需简单地定义常量
然后将常量分配给函数:
方法3: 不定义常量,给函数赋值即可:
以上有什么优缺点吗?
bash - 使用 ifdef 和 ifndef 指令
我正在尝试检查是否使用 定义了变量ifndef/ifdef
,但我不断收到not found
执行错误。我正在使用GNU Make 3.81
,这是我所拥有的片段:
以及确切的错误:
编辑:
考虑到 Barmar 的评论,得出以下结论:
define 的内容是 shell 命令行,而不是 make 指令;要在定义块内的命令内换行,必须对换行符进行转义 -- 使用 \; 此外,与单行命令对应的每个块都是单独执行的,每个块在不同的 shell 执行中执行,这意味着如果打算访问下一个单行块中的变量值,定义局部变量将不起作用。
感谢 Tripleee 的出色工作。
c++ - 错误:#if[n]def 需要一个标识符
最初我的代码是:
但是我遇到了一个错误#if[n]def expected an identifier
。所以我玩弄它并意识到我的错误在2DO_H
. 当我将代码更改为:
它在上述情况下有效,因为我2DO_H
改为DO_H
. 为什么当我在标识符前面有一个额外的数字时,会出现错误?
c++ - 使用 #ifndef 会破坏 node-gyp 模块
我正在使用and编写一个node.js
模块,但是当我修复所有错误时,就像在这个问题中一样,其中包括通过添加来摆脱冗余声明C++
node-gyp
和
到我的文件。然后我得到错误
但是当我删除它们时,一切正常,相反,我只会收到编译器警告,例如
我不明白为什么会这样,如果可能的话,我想摆脱编译器警告。有什么想法吗?
c++ - 多个包含错误
我是 C++ 新手,正在尝试包含我制作的两个 .h 文件。包括相互访问,因此取决于我将它们包含在一个失败或另一个中的顺序。因此,我知道唯一可能的问题是当我去编译“$ g++ main.cpp foo1.cpp foo2.cpp”并且它无法读取一个。我使用#IFnDef 是因为我看到它在另一篇文章中解决了这个问题,但它对我没有任何改变。有任何想法吗?