问题标签 [include-guards]
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++ - 头文件包含循环和多重定义
我有一个util.h
包含一个函数,它将用于a.h
和'bh',以及更多,a.h
并将b.h
相互包含以访问彼此定义的一些类。
我的问题是,我得到multiple definition
了foo
. 如何?
我认为问题可能是,a.h
包括util.h
和b.h
,并再次b.h
包括,所以我得到了多个 def 错误。util.h
但这似乎没有意义,因为util.h
我写了#ifndef/#define
守卫。
任何人都可以给我帮助,谢谢。
c++ - 包括守卫风格,C++
我有一个 .h 文件,其中包含几个类定义。我想在这个文件中使用 C++ 的包含防护;但是,我想知道哪种使用包含防护的方式被认为是正确/正确的?
一个守卫保护一切
或多个单独的警卫。
c++ - 带有外部“C”的 C++ 导致重复符号错误
我正在尝试在头文件中为 c++ 类使用外部“C”函数。
当我编译时,我不断收到错误
我以为我有合适的警卫,但似乎无法弄清楚为什么会发生这种情况。任何帮助将非常感激。
这是头文件。
编辑:大卫很快指出,外部 GLHandler *currentInstance 修复了错误。
c++ - 我还应该使用#include 警卫和#pragma 一次吗?
http://en.wikipedia.org/wiki/Pragma_once
当所有这些编译器都支持时,我还应该使用包含防护#pragma once
吗?
很多关于堆栈溢出的响应都说要同时使用两者以实现兼容性,但我不确定这是否仍然正确。今天的编译器不支持#pragma once
什么?
我不确定使用这两种方法是否只是在被广泛采用之前的建议,或者是否仍然有很好的理由使用这两种方法。
仅在何时使用#pragma once
会导致问题的任何示例?
c++ - C++ 头文件重定义 (ws2ipdef.h)
我在我的项目中使用了很多包含(但每个头文件都使用像
现在我从 ws2ipdef.h 得到这个错误(自动包含在 windows.h 中):
在 Interface.h (包含在其他一些文件中)我使用:
我该如何解决这个问题或任何提示?
谢谢
c - C - #include 和多个 typedef
我正在用 gcc 在 eclipse 中编写一个嵌入式 C 程序,但看不到如何解决某个问题。我在头文件中有一个 typedef,它受包含保护。由于我在多个头文件中使用此 typedef,因此我需要将其包含在其他头文件中,但是当我尝试编译时,无论我做什么,其中一个头文件都看不到 typedef 并抱怨未知类型名称。
我相信这说明了问题:
标题啊:
标题 bh:
标题通道:
这似乎总是导致错误“未知类型名称'USBD_Status'”,因为第二个编译的任何头文件都看不到typedef。从 ah 中删除包含保护会导致抱怨 USBD_Status 正在被重新声明。
编辑:我已经仔细检查了所有包含路径、所有包含、所有文件名和所有包含保护 - 没有重复或拼写错误。
c++ - 为什么我的包含保护不能防止递归包含和多个符号定义?
关于include 守卫的两个常见问题:
第一个问题:
为什么不包含保护我的头文件免受相互递归包含的保护?每次我写如下内容时,我都会不断收到关于不存在符号的错误,这些错误显然存在,甚至更奇怪的语法错误:
“啊”
“嗯”
“主.cpp”
为什么我在编译“main.cpp”时会出错?我需要做什么来解决我的问题?
第二个问题:
为什么不包括防止多个定义的警卫?例如,当我的项目包含两个包含相同标头的文件时,有时链接器会抱怨某些符号被多次定义。例如:
“标题.h”
“source1.cpp”
“source2.cpp”
为什么会这样?我需要做什么来解决我的问题?
c++ - 使用 gnu coreutils 在 C++ 中查找包含警卫错别字
下面是一个 C++ 包含保护的错字。两者都应该阅读_MYFILE_H_
。
您如何建议使用 GNU coreutils(例如 grep、awk)在一堆头文件中搜索这样的错字?
c++ - #包括重复
上下文:我有一个类有两个include
子句:
问题:两者都VarRecord.h
包含Compressor.h
同一个文件GlobalConstants.h
,所以很明显编译器会抱怨。