header-files相关内容

何时使用包括警卫?

我知道在头文件中使用包含保护是为了防止某些东西被定义两次.不过,使用此代码示例完全没问题: foo.c #include #include #include "bar.h"int main() {printf("%d", strlen("测试字符串"));somefunc("一些测试字符串...");返回0;} bar.h #ifndef BAR_ ..
发布时间:2022-01-11 19:55:44 其他开发

#pragma 曾经是 C++11 标准的一部分吗?

传统上,避免在 C++ 中包含多个标头的标准和可移植方法是使用 #ifndef - #define - #endif预编译器指令方案,也称为 宏守卫方案(见下面的代码片段). #ifndef MY_HEADER_HPP#define MY_HEADER_HPP...#万一 然而,在大多数实现/编译器(见下图)中,有一个更“优雅"的替代方案,其用途与称为 #pragma once.#pragma ..
发布时间:2022-01-11 19:21:10 C/C++开发

C 包含守卫究竟是做什么的?

我有一个关于 C 中包含守卫的问题.我已经阅读了一些内容,但希望能得到一些澄清. 假设我有一个带有函数定义的头文件“header.h". #ifndef HEADER_FILE#define HEADER_FILE诠释二(无效){返回 2;}#万一 这个头文件有一个包含保护.但是,我对#define HEADER_FILE 实际上在做什么感到困惑.假设我要忘记包含保护,完全忽略添加“#d ..
发布时间:2022-01-11 19:16:54 其他开发

C++ 和 C 中的标头保护

在 LearnCpp.com |1.10 — 预处理器初探.在 Header guards 下,有这些代码片段: 添加.h: #include "mymath.h"int add(int x, int y); 减去.h: #include "mymath.h"整数减法(整数 x,整数 y); main.cpp: #include "add.h"#include “减法.h" 在实 ..
发布时间:2022-01-11 19:16:44 C/C++开发

C++ 循环头包括

我知道之前有人问过与此类似的问题,但经过研究后,我仍然对循环标题包含有疑问. //FooA.h#ifndef H_FOOA#define H_FOOA#include "foob.h"类FooA{上市:FooB *fooB;};//FooB.h#ifndef H_FOOB#define H_FOOBFooA 类;类FooB{上市:富阿*富阿;}; 现在,如果我有两个循环依赖项,这就是我在 st ..
发布时间:2022-01-11 16:41:06 C/C++开发

在 C++ 程序中包含 C 头文件

我有一个 C++ 程序 (.cpp),我希望在其中使用 C 头文件中的一些函数,例如 stdio.h、conio.h、stdlib.h、graphics.h、设备.h等 我可以在我的 cpp 文件中包含 stdio.h 库:#include .如何包含其他库文件? 如何添加 graphics.h 库? 我使用的是 Microsoft Visual Studio 6 ..
发布时间:2022-01-11 16:07:31 C/C++开发

我可以编写没有标头的 C++ 代码(重复函数声明)吗?

有没有什么方法可以不必编写两次函数声明(头文件),并且在使用 C++ 编程时仍然保持相同的编译可伸缩性、调试的清晰度和设计的灵活性? 解决方案 使用Lzz.它需要一个文件并自动为您创建一个 .h 和 .cpp,所有声明/定义都在正确的位置. Lzz 确实非常强大,可以处理 99% 的完整 C++ 语法,包括模板、特化等. 更新 150120: 较新的 C++ '11/14 ..
发布时间:2022-01-11 16:04:47 C/C++开发

为什么在头文件中定义类时没有多重定义错误?

我不确定我是否正确地问了这个问题,但让我解释一下. 首先,我阅读了这篇解释声明和定义之间区别的文章:http://www.cprogramming.com/declare_vs_define.html 其次,我从之前的研究中知道,在头文件中定义变量和函数是不好的做法,因为在链接阶段,您可能有多个同名定义,这会引发错误. 但是,为什么课程不会发生这种情况?根据另一个SO答案(定义和 ..
发布时间:2022-01-11 15:12:07 C/C++开发

- 1)预处理器,链接器,2)头文件,库有什么区别?我的理解正确吗?

好的,直到今天早上我都对这些术语感到困惑.我想我已经有所不同了,希望如此. 首先,令人困惑的是,由于预处理器已经将头文件包含在包含函数的代码中,链接器将哪些库函数链接到汇编器/编译器生成的目标文件?部分混淆主要是由于我对头文件和库之间的区别一无所知. 经过一番谷歌搜索和堆栈溢出(这是术语吗?:p),我收集到头文件主要包含函数声明,而实际实现在另一个名为库的二进制文件中(我仍然不是 10 ..

x86 SIMD 内在函数的头文件

哪些头文件为不同的 x86 SIMD 指令集扩展(MMX、SSE、AVX 等)提供了内在函数?在网上找不到这样的列表似乎是不可能的.如果我错了,请纠正我. 解决方案 现在你通常应该只包含 .它包括一切. GCC 和 clang 将阻止您将内部函数用于编译时未启用的指令(例如使用 -march=native 或 -mavx2 -mbmi2 -mpopcnt -mfma -mcx16-m ..
发布时间:2022-01-06 12:37:14 其他开发

头文件改变时如何使Makefile重新编译?

我已经编写了一个 Makefile 来在 OSX 上编译一个 openCV 程序(在 Unix 系统中更通用). 代码有一个名为 constants.hpp 的头文件,其中定义了一些常量. 当这个头文件改变时,我想让 Makefile 重新编译程序,因为其中的常量值改变了程序的行为. 我的 Makefile 如下 CPP = g++CPPFLAGS = -std=c++11全部 ..
发布时间:2022-01-04 21:29:32 其他开发

C 中的头文件和源文件如何工作?

我已经仔细阅读了可能的重复项,但是没有一个答案会被理解. tl;dr:C 中的源文件和头文件有何关联?项目是否在构建时隐式地整理声明/定义依赖项? 我试图理解编译器如何理解.c 和.h 文件之间的关系. 给定这些文件: header.h: int returnSeven(void); source.c: int returnSeven(void){返回7;} ma​ ..
发布时间:2022-01-04 21:18:04 其他开发

C/C++ 头文件和实现文件:它们是如何工作的?

这可能是一个愚蠢的问题,但我已经在这里和网上搜索了很长时间,但找不到明确的答案(我的尽职调查谷歌搜索). 所以我是编程新手...我的问题是,main 函数如何知道不同文件中的函数定义(实现)? 例如.假设我有 3 个文件 main.cpp myfunction.cpp myfunction.hpp //main.cpp#include "myfunction.hpp"i ..
发布时间:2022-01-04 21:15:14 C/C++开发

如何让 g++ 搜索特定目录中的头文件?

我有一个项目(一个库),它被细分为几个包含代码的目录.我想让 g++ 在项目的根目录中搜索头文件,这样我就可以避免多个源文件中相同头文件的不同包含路径. 主要是root/目录下有子目录A/、B/和C/,所有这些里面都有 .hpp 和 .cpp 文件.如果 A 中的某个源文件想要包含在 B 中的 file.hpp,则必须这样做: #include "../B/file.hpp".对于另一个 C ..
发布时间:2022-01-01 13:45:53 其他开发

应将各种变量和方法类型放在标题中的位置

我注意到,如果我在头文件中的某些位置放置某些声明,则会出现编译错误.我已经在代码中添加了关于我认为某些事情发生的地方的评论;他们说得对吗? @interface Level : CCNode {//实例变量?PlayBackgroundLayer* playBGLayer;PlayUILayer* playUILayer;播放元素层* 播放元素层;}//静态方法?+(void) InitLeve ..

如何修复“无法在 Turbo C 中打开 stdio.h"错误?

每当我编译我的程序时,都会出现上述错误. 解决方案 如果您遇到这样的问题,首先将您的 TC 文件夹放入 C:... 驱动器.安装完成后打开turbo c蓝屏.有一个 OPTIONS >目录 ..在其中您可以看到设置路径的选项.. 包含目录..你现在可以在那里设置路径.. C:\TC\INCUDE 库目录..你可以在那里设置路径...C:\TC\LIB 如果您想将输出存储在 BIN ..
发布时间:2021-12-31 22:32:22 其他开发

.h 和 .m 文件中 @interface 定义的区别

通常我们使用 @interface interface_name : parent_class {......}@结尾 .h 文件和 .m 文件中的方法我们综合了 .h 文件中声明的变量的属性. 但在某些代码中,这个@interface.....@end 方法也保存在 .m 文件中.这是什么意思?它们有什么区别? 另外给出一些关于.m文件中定义的接口文件的getter和setter ..
发布时间:2021-12-31 14:18:08 移动开发

在头文件与实现 (.cpp) 文件中定义构造函数

我可以在类 .h 文件或实现文件 .cpp 中定义类构造函数的主体.就特定项目中的编译器而言,这两种风格可能是相同的(项目对我来说意味着 DLL).这同样适用于任何成员函数:它们可以在头文件中定义,也可以在头文件中声明,然后在 cpp 文件中定义. 然而,我发现如果我需要在不同的项目中包含这样的类头文件(意味着最终使用头文件的代码最终在不同的 DLL 中)然后有头文件中的实际实现在编译时引起 ..
发布时间:2021-12-30 15:38:24 C/C++开发