头文件啥意思,什么叫做红头文件

1,什么叫做红头文件红头文件就上级各级主管部门签发的文件的字头是用红色印油印的文件,一般都是正式文件 。
2,头文件的作用一般会把用来#include的文件的扩展名叫.h,称其为头文件 。#include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一个文件里减少整体代码尺寸;或者提供跨工程公共代码 。其内容没有绝对的要求 。
3 , 头文件和库文件有何区别和联系专业一点头文件中有函数的申明,库文件实现函数的定义 。比如,printf函数 。使用时应包括stdio.h,打开stdio.h你只能看到,printf这个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库中 。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的 。程序中包括了stdio.h这个头文件 。链接器就能根据头件中的信息找到printf这个函数的实现并链接进这个程序代码段里 。总结起来就是 , 库文件通过头文件向外导出接口 。用户通过头文件找到库文件中函数实现的代码从而把这段代码链接到用户程序中去 。【头文件啥意思,什么叫做红头文件】
4 , c如何定义头文件#ifndef TIME_H //if not define,如果没有被引用过 , 因为如果要使用很多.h肯定会有重复引用同一头文件的,如果重复引用,例如一个#include"x.h";#include<x.h>,可能会引用到2个相同文件名但是是不同函数的头文件,电脑就不知道应该用哪里的函数 , 必然会出错,所以要判断一下有没有重复引用;与#endif呼应例如系统下有一个f.h里有一个函数int f(int)#define TIME_H //如果没有引用过,就定义一个TIME_H头文件用#include<>包含或者用using name space std#ifndef time_h 直到#endif是条件语句.是说:"如果没有定义(声明)全局常量time_h 则做什么什么".#define time_h 是说: "定义(声明)全局常量time_h"整个条件语句说:如果没有定义全局常量time_h 则定义全局常量time_h再定义 class time #endif 是 条件语句结束符time_h 可能是 "time.h"条件语句也可说(告诉编译器): 如果没有 #include则 插入#include 上面回答纯祽胡诌!那有“2个相同文件名但是是不同函数的头文件”?不同的头文件里面define的宏肯定不同,要是有两个不同文件,你如果要包含他们,他们彼此肯定不会影响,用“”和<>包含的唯一区别是搜索路径不同,<>只搜索系统包含路径首先看重复引用的情况,举个例子很容易看明白如有1.h;2.h;3.h;4.h共4个头文件 。2,3都包含1,4包含2,3 。这样如果不加控制,最后4里面相当于包含了1两次 。如果里面有结构或类定义,编译器就会报错:重定义 。再来看如何避免重复引用的 。#ifndef #endif叫预编译指令,也就是在实际把程序送入编译器前对源代码进行处理的指令 。当头文件第一次被包含时你定义的TIME_H 还一次也没有被定义过,因此整个头文件都会被包含近来 。而第二次包含时,由于TIME_H 已经在上次包含时被定义了,#ifndef判断失败了,被包含在#ifndef和#endif之间内容就被排出在外了 。这样最后被送入编译器的源代码,只包含头文件的内容一次 。明白这个原理后,你也就明白了为什么不同的头文件必须定义不同的宏了:否则它们就会互相排斥了5,头文件怎么定义#ifndef __ABC_H__#define __ABC_H__//以上是为了防止头文件被多次包含 , 可以省略,最好有 , 名字任意,保证唯一即可//以下是宏定义,可有可无#define MAX 100#define MIN 0//以下是结构声明,可有可无typedef struct{int a;}ABC;//以下是函数声明,可有可无void abcfun(int a,int b);...#endif 就这么多不就是把函数的声明放在里面么你就把你想放在头文件里的函数写出来保存成.h 的文件就行了 。建议你找个 .h 看看人家怎么写的就明白了!就像oldevil 说的,比如你有个头文件叫head.h,你就这么写:#ifndef HEAD_H#define HEAD_H//以上是为了防止头文件被多次包含,强烈推荐有,名字一般和文件名对应,保证唯一即可 //对头文件本身的功能说一些,声明作者日期什么的,可有可无//以下是各种需要用到的声明 #endif给你个以前unix下写过的头文件看看 也许有帮助#ifndef _DB_cost_dbbuf_INCLUDE_H_#define _DB_cost_dbbuf_INCLUDE_H_#ifdef INFORMIX_ECEXEC SQL typedef struct { char khh[7]; char xm[11]; char xb[3]; char hydm[5]; char sfzh[19]; char dz[41]; char dh[16];} T_KHXX;EXEC SQL typedef struct { int lsh; char khh[7]; char spdm[6]; int sl; double je; long rq; char sj[9];} T_XFJL;EXEC SQL typedef struct { char khh[7]; double jf;long jfrq; double scjf; long scjfrq;} T_JFDT;EXEC SQL typedef struct { char khh[7]; long rq;double jfz; double scjf;} T_JFMX;EXEC SQL typedef struct { char spdm[6]; double xs;} T_JFXS;EXEC SQL typedef struct { char dmlb[5]; char dmbm[11]; char dmmc[21];} T_GYDM;#elsetypedef struct { char khh[7]; char xm[11]; char xb[3]; char hydm[5]; char sfzh[19]; char dz[41]; char dh[16];} T_KHXX;typedef struct { int lsh; char khh[7]; char spdm[6]; int sl; double je; long rq; char sj[9];} T_XFJL;typedef struct { char khh[7]; double jf;long jfrq; double scjf; long scjfrq;} T_JFDT;typedef struct { char khh[7]; long rq;double jfz; double scjf;} T_JFMX;typedef struct { char spdm[6]; double xs;} T_JFXS;typedef struct { char dmlb[5]; char dmbm[11]; char dmmc[21];} T_GYDM;#define SQLERR if (sqlca.sqlcode ) { printf("File:[%s] Line:[%s] Err:[%d]\n",__FILE__,__LINE__,sqlca.sqlcode);return(sqlca.sqlcode);}#define SQLCODE100 if (sqlca.sqlcode == 100) break;#endif#endif

    推荐阅读