问题标签 [header-files]
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++ - #include 和有什么区别和#include“文件名”?
在 C 和 C++ 编程语言中,在语句中使用尖括号和使用引号有什么区别include
,如下所示?
#include <filename>
#include "filename"
c - 在 C 编辑器中自动定义...为什么?
当Eclipse在 C 项目中创建一个新文件(.c或.h文件)时,编辑器总是在文件顶部自动创建一个,如下所示:如果文件名为“myCFile.c” ,则开头#define
会有一个#define
像这样的文件
我也看到其他编辑器也这样做(我认为是 Codewright 和 SlikEdit)。似乎对编辑器#defines
没有任何作用,因为我可以毫无问题地删除它们,而且我想不出我 想使用它们的原因。有谁知道他们为什么在那里?
c++ - 将所有代码放在 C++ 头文件中的优点和缺点?
您可以构造一个 C++ 程序,以便(几乎)所有代码都驻留在头文件中。它本质上看起来像一个 C# 或 Java 程序。但是,在编译时,您确实需要至少一个.cpp
文件来拉入所有头文件。现在我知道有些人绝对会讨厌这个想法。但我没有发现这样做有任何令人信服的缺点。我可以列出一些优点:
[1] 更快的编译时间。所有头文件只被解析一次,因为只有一个 .cpp 文件。此外,一个头文件不能包含多次,否则会导致构建中断。使用替代方法时,还有其他方法可以实现更快的编译,但这很简单。
[2] 它通过使它们绝对清晰来避免循环依赖。如果ClassA
in对inClassA.h
有循环依赖,我必须提出一个前向引用并且它会突出。(请注意,这与编译器自动解析循环依赖关系的 C# 和 Java 不同。这鼓励了 IMO 的不良编码实践)。同样,如果您的代码在文件中,您可以避免循环依赖,但在实际项目中,文件往往包含随机标题,直到您无法弄清楚谁依赖于谁。ClassB
ClassB.h
.cpp
.cpp
你的意见?
header-files - 外部依赖/头文件
在 Windows MSVC6.0 编译器中,如果有一个工作区,其中包含一个项目,那么Header Files 文件 夹中会包含哪些文件,External Dependencies文件夹中会包含哪些文件?
我认为那些明确包含的文件(#include <*.h> 将在Header Files 文件夹中,而这些文件又包含在添加的头文件中,将在External Dependencies文件夹中?但似乎并非如此。
那么两者有什么区别呢?
-广告
c++ - 为什么要有头文件和 .cpp 文件?
为什么 C++ 有头文件和 .cpp 文件?
c - 在 C 中定义 const 值
我有一个 C 项目,其中所有代码都组织在*.c
/*.h
文件对中,我需要在一个文件中定义一个常量值,但是它也将用于其他文件。我应该如何声明和定义这个值?
应该static const ...
和*.h
文件里的一样吗?如extern const ...
在*.h
文件中并在文件中定义*.c
?如果值不是原始数据类型(int
,double
等),而是 achar *
或 a ,这有什么关系struct
?(虽然在我的情况下它是一个double
。)
通常,在文件中定义东西*.h
似乎不是一个好主意。应该在文件中声明事物*.h
,但在文件中定义它们*.c
。但是,这种extern const ...
方法似乎效率低下,因为编译器无法内联该值,而是必须始终通过其地址访问它。
我想这个问题的本质是:是否应该在 Cstatic const ...
中的文件中定义值*.h
,以便在多个地方使用它们?
c++ - C++ 头文件 - 困惑!
当我尝试将 socket.h 包含到 game.h 中时,问题就出现了,因为 socket.h 已经包含了 game.h。我该如何解决这些问题?
c++ - C++ 命名空间和包含
为什么我们在 C++ 程序中同时需要using namespace
和指令?include
例如,
#include <iostream>
为什么仅仅拥有或仅仅拥有using namespace std
并摆脱另一个是不够的?
(我在想一个与 Java 的类比,从哪里import java.net.*
导入所有内容java.net
,你不需要做任何其他事情。)
c++ - 使用 C++ 头文件的最佳实践
我对头文件的使用有以下疑问。
1 - 包括在评论后放置的守卫
Herb Sutter 在他的“C++ 编码标准”一书中说,像上面这样的代码是有问题的。他说“#ifndef”语句应该出现在头文件的第一行。我觉得这没有说服力。这是你们/女孩在头文件中的后续吗?
2 - 在头文件中使用命名空间
上面的代码是否使用正确的做法?我的意思是,你在头文件中使用命名空间吗?我知道为什么在头文件中导入命名空间是没有意义的,但是像上面这样的声明呢?
如果上述方法是正确的,您如何对另一个命名空间中的类进行“前向声明”?是不是像
“前向声明”是避免“循环依赖”的唯一方法,对吗?
c++ - 在 C++ 的头文件中编写函数定义
我有一个有很多小功能的类。小函数是指不进行任何处理而只返回文字值的函数。就像是:
我创建了一个头文件“Foo.h”和源文件“Foo.cpp”。但是由于函数很小,我正在考虑将它放在头文件本身中。我有以下问题:
- 如果我将这些函数定义放在头文件中,是否有任何性能或其他问题?我会有很多这样的功能。
- 我的理解是编译完成后,编译器会展开头文件并将其放在包含的位置。那是对的吗?