c++头文件中的开头代码是啥意思?

如题所述

if
!defined
xxx
#define
xxxx
这是预编译指令,是说,如果代码中没有定义xxx,则定义xxx,目的是,在引用文件时,防止重复定义
比如:在aaa.h中定义了AAA变量,
而在main.cpp
中#include
“AAA.h”,main.cpp也同时要使用fun.cpp.
并且在fun.cpp
中也#include“AAA.h”
那么如果没有预编译指令的话
两个文件都定义了AAA这个变量.那么就造成了AAA的多次定义。
/*****************************/
/***文件一***main.cpp***********/
#include
"AAA.h"
int
main()
.....
/**文件二*****AAA.h************/
const
int
AAA
=
123;
/**文件三*****fun.cpp**************/
#include
"AAA.h"
.....
这样,main文件包含了AAA变量的定义,由于main文件中会调用的fun.cpp,而fun.cpp文件包含了AAA.h也就是定义了AAA,
所以就会造成main文件定义了两次AAA变量。
如果使用了预编译指令,
则可以在定义了一次之后
不知道我说清楚了没有,清楚了就请加分吧
不再定义第二次
由于
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-15
字面意思:
如果没有定义下面这个东西AFX_CLASS_H__989CDEA3_FB9C_4FC7_8F09_D0FC93DA59BF__INCLUDED_
那么就定义下,顺便定义完了执行下下面这个:
if
_MSC_VER
>
1000
#pragma
once
也就是说如果定义过了那个很长的东西,就不定义了,下面的那个顺便定义的也省了
这样做的目的是防止重复执行相同的语句
第2个回答  2020-03-13
是些预编译指令
#if
!defined(AFX_CLASS_H__989CDEA3_FB9C_4FC7_8F09_D0FC93DA59BF__INCLUDED_)
如未定义宏AFX_CLASS_H__989CDEA3_FB9C_4FC7_8F09_D0FC93DA59BF__INCLUDED_
#define
AFX_CLASS_H__989CDEA3_FB9C_4FC7_8F09_D0FC93DA59BF__INCLUDED_
则定义之(即防止重复定义)
#if
_MSC_VER
>
1000

常量或宏
_MSC_VER
>
1000
#pragma
once
#pragma
是给编译器发指令的,效果因编译器不同而异
#endif
//#if
_MSC_VER
>
1000
的结束
就这样的拉
第3个回答  2020-02-26
宏定义,#if
!defined
如果没有定义
#define
就定义
#if
如果
#pragma
once
运行一次(这个不太确定)
#endif
结束

c++头文件中的开头代码是啥意思?
这是预编译指令,是说,如果代码中没有定义xxx,则定义xxx,目的是,在引用文件时,防止重复定义 比如:在aaa.h中定义了AAA变量,而在main.cpp 中#include “AAA.h”,main.cpp也同时要使用fun.cpp.并且在fun.cpp 中也#include“AAA.h”那么如果没有预编译指令的话 两个文件都定义了AAA这个变量....

c++开头的是什么
include :表明这个文件是一个工程文件或标准头文件,查找过程回检查预定义的目录。include“ ”:表明该文件是用户提供的头文件,查找该文件时将从当前文件目录开始。iostream是输入\/输出流库标准文件。using指示符。在标准C++中,如cout不能在程序中直接使用,除非在预处理指示符:#include后面加上using n...

请问C++的程序中的开头有这些代码是什么意思?求详细的解释。
int main(int argc, char** argv)这种格式的main函数就是来解决这个问题的。 这种程序编译后的可执行文件在运行时,程序中可以通过变量argc知道命令行上的参数个数(包括程序名和后面带的参数),比如输入 a.exe -p 192.168.1.1 回车后程序中变量argc的值是3,表示命令行上有程序名和2个附带参数...

c++的头文件,c开头的和“.h”结尾的有啥区别啊?
你的意思应该是.c和.h的区别吧。文件开头的话是没有特殊含义的。.c代表的C的代码实现文件;.h代表的是C的代码的声明文件,也就是俗称的头文件;

C\/C++ 头文件里的代码是什么东西啊?起什么作用?
她的意思就是:在程序编译前把指定的文件(如iostream文件)复制到此处,然后再开始编译。为什么非要有她不可呢?因为你可能会在下面用到cin,cout等函数,如果没有iostream头文件,编译器就不知道cin,cout是什么东西(“iostream”中的“i”“o”就是“cin”“cout”里的“i”“o”),所以她提供的...

我在自学c++.我想问一下图片上这个开头的代码是干什么的?因为一直没...
头文件,里面包含函数。在程序开头声明头文件后,你就可以在程序中直接使用里面的函数了。

谁能告诉我C++ 源文件的顶端的这段代码的意思?
这是包含一些头文件,其中stdafx.h是VC自动生成的头文件,主要是包含一些必要的头文件以及完成预编译相关的工作。ifdef _DEBUG define new DEBUG_NEW undef THIS_FILE static char THIS_FILE[] = __FILE__;endif #ifdef _DEBUG \/\/如果定义了_DEBUG预编译头(如果是调试版,可以在工程 属性里看到...

扩展c\/c++源文件中的#include指令什么意思
1、在C\/C++中以#号开头的语句是预处理命令。2、#include告知预处理器将已指定文件的内容视为它们在源程序中指令出现处出现的方式处理。3、#include一般有两种包含方式:include <头文件>:采用"< >"方式进行包含的头文件表示让编译器在编译器的预设标准路径下去搜索相应的头文件。include "头文件":...

C++中开头的“#include<string.h>”是什么意思?
string类的头文件 意思是:#include<string.h>表示系统会到默认的路径下去找string.h include“string.h“表示系统先到你指定的路径下去找string.h,如果找不到,则到系统默认路径去找

什么是源代码中的头文件
c++中的头文件以.h为扩展名,程序的一部分,一般用于存放实现某些功能的代码

相似回答