C头文件包含规则,C中关于头文件包含的问题

1 , C中关于头文件包含的问题#include <iostream>using namespace std;这个是C++的写法,C++程序鼓励这么写 。#include <iostream.h>这是C的写法 。在VC++6.0中,这两者写法都可以 , 但在VS2008中,就只能用第一种写法 。我同学告诉我,其实iostream.h头文件中有一句using namespace std;..\表示上个目录,就是包含当前文件的目录的父目录比如有d:\a\b\c\a.cd:\a\def.ha.c所在目录就是c , ..\..\def.h就是包含在a目录下的def.h文件
2,c语言文件包含格式用双引号括起来的格式容易找到所指定的文件,因为双引号里的文件,不含路径就在当前文件夹 , 含路径就在指定的文件夹里找 。用尖括号括起来的 , 要在环境变量 INCLUDE 规定的 多个 文件夹里找,当然费时间 。双引号括起来的文件 , 如在指定文件夹中没找到 , 就会再到INCLUDE 规定的 多个 文件夹里找,那就费时间 。通常,系统头文件用尖括号,自己写的头文件用双引号 。所谓包含文件目录就是你安装编译软件时,在安装目录下生成的一些目录中,大多数会有一个include目录,在该目录下存放了编译器提供的头文件,像常见的stdio.h等头文件 。源文件目录 , 就是你编写的程序所存放的目录 , 说白了就是你写的源代码存放的文件或者生成exe所存放的目录 。包含目录是可以设置的 。
3,C语言中头文件的包括有先后顺序之分吗望详细说明哦一般来说没有!编译器在编译程序时,会将头文件按引用的顺序依次读入到中间源代码文件中,然后进行编译 。如果出现在定义变量和函数时,存在相互调用的问题,而头文件又分成多个(各写各的头文件),这样一来顺序错了就会产生编译问题 。如:/**1.hdatatype abc ; //这里引用了一个新类型datatype2.htypedef int datatype ;//这里定义了一个新地类型**/#include <stdio.h>/**这样引用会出错#include "2.h"#include "1.h"***///以下引用是正确的?。。。?include "1.h"#include "2.h"int main()abc=10;printf("abc=%d\n" , abc );return 0;}piao【C头文件包含规则,C中关于头文件包含的问题】
4,关于C语言 文件预处理 头文件文件包含的问题怎么编写自己的头文把你的cpp改.h,再把main函数上面的 #include#include 这两个去掉就行了 。包含文件的格式不能为cpp 另外这样只能保证编译不出错,你的程序 本身还是有问题的 。scanf("%f",&a); 这一句 , 因为a是double型的,所以要改成 scanf("%lf",&a); 不然是不会得到正确结果 的 。1.什么是源文件在c语言中以.c结尾的文件为源文件,以.h结尾的也可以说是源文件 , 但习惯上称其为头文件2.如何将两个文件一起做编译放到一个文件夹下即可 。3.vc6 。0中的操作在记事本中写完两个文件,一个保存为.c一个保存为.h,注意,要在一个文件夹下;然后把.c文件用鼠标拖到vc图标上即可 。若弹出对话框,先yes即可 。sqrt.cppdouble f(double a)return(a);}第二个文件改成如上 , 就是你重复包含头文件了,我知发现了这个错误,不知道还有别的没//注:错误有两处,省略的有一处 , 在下面已经列举,该正后的程序可以正确运行.//希望kutpbpb的回答能对你有所帮助!sqrt.h//头文件扩展名应该是.h#include#include double f(double a) {a=sqrt(a); return(a); } #include #include //这两个头文件因为已经由头文件包含过了,所以可以省略 #include"sqrt.h" //这里也要跟改正后的一致 void main() {double a; scanf("%lf",&a); //这里输入double类型的数,控制格式应为lf printf("%f开方后的数是%f",a,f(a)); }5 , C语言文件内容的一般规则是什么1、每个头文件和源文件的头部必须包含文件头部说明和修改记录 。源文件和头文件的头部说明必须包含的内容和次序如下: /************************************************************************ * File Name : FN_FileName.c/ FN_FileName.h * Copyright : 2003-2008 XXXX Corporation, All Rights Reserved. * Module Name : Draw Engine/Display * * CPU : ARM7 * RTOS : Tron * * Create Date : 2008/10/01 * Author/Corporation : WhoAmI/your company name ** Abstract Description : Place some description here. ** -----------------------Revision History--------------------------------- * No Version Date Revised By Item Description * 1 V0.95 08.05.18 WhoAmI abcdefghijklm WhatUDo * ************************************************************************/ 2、各个源文件必须有一个头文件说明,头文件各部分的书写顺序下:其中Multi-Include-Prevent Section 是用来防止头文件被重复包含的 。如下例: #ifndef __FN_FILENAME_H #define __FN_FILENAME_H #endif 其中“FN_FILENAME”一般为本头文件名大写,这样可以有效避免重复,因为同一工程中不可能存在两个同名的头文件 。/************************************************************************ * File Name : FN_FileName.h * Copyright : 2003-2008 XXXX Corporation, All Rights Reserved. * Module Name : Draw Engine/Display * * CPU : ARM7 * RTOS : Tron * * Create Date : 2008/10/01 * Author/Corporation : WhoAmI/your company name ** Abstract Description : Place some description here. ** ----------------------------------------Revision History--------------------------------- * No Version Date Revised By Item Description * 1 V0.95 08.05.18 WhoAmI abcdefghijklm WhatUDo * ************************************************************************/ /************************************************************************ * Multi-Include-Prevent Section ************************************************************************/ #ifndef __FN_FILENAME_H #define __FN_FILENAME_H /************************************************************************ * Debug switch Section ************************************************************************/ #define D_DISP_BASE /************************************************************************ * Include File Section ************************************************************************/ #include "IncFile.h" /************************************************************************ * Macro Define Section ************************************************************************/ #define MAX_TIMER_OUT (4) /************************************************************************ * Struct Define Section ************************************************************************/ typedef struct CM_RadiationDose { unsigned char ucCtgID; char cPatId_a[MAX_PATI_LEN]; }CM_RadiationDose_st, *CM_RadiationDose_pst; /************************************************************************ * Prototype Declare Section ************************************************************************/ unsigned intMD_guiGetScanTimes(void); …… #endif 3、源文件各部分的书写顺序如下:/************************************************************************* * File Name : FN_FileName.c * Copyright : 2003-2008 XXXX Corporation, All Rights Reserved. * Module Name : Draw Engine/Display * * CPU : ARM7 * RTOS : Tron * * Create Date : 2003/10/01 * Author/Corporation : WhoAmI/your company name ** Abstract Description : Place some description here. ** -----------------------Revision History--------------------------------- * No Version Date Revised By Item Description * 1 V0.95 00.05.18 WhoAmI abcdefghijklm WhatUDo * ************************************************************************/ /************************************************************************ * Debug switch Section ************************************************************************/ #define D_DISP_BASE /************************************************************************ * Include File Section ************************************************************************/ #include "IncFile.h" /************************************************************************ * Macro Define Section ************************************************************************/ #define MAX_TIMER_OUT (4) /************************************************************************ * Struct Define Section ************************************************************************/ typedef struct CM_RadiationDose { unsigned char ucCtgID; char cPatId_a[MAX_PATI_LEN]; }CM_RadiationDose_st, *pCM_RadiationDose_st; /************************************************************************ * Prototype Declare Section ************************************************************************/ unsigned int MD_guiGetScanTimes(void); /************************************************************************ * Global Variable Declare Section ************************************************************************/ extern unsigned int MD_guiHoldBreathStatus; /************************************************************************ * File Static Variable Define Section ************************************************************************/ static unsigned int nuiNaviSysStatus; /************************************************************************ * Function Define Section ************************************************************************/ 4、需要对外公开的常量放在头文件中 , 不需要对外公开的常量放在定义文件的头部 。

    推荐阅读