C语⾔:头⽂件源⽂件及include包含指令
C语⾔头⽂件源⽂件及include包含指令
1- 头⽂件:(head),所以⽂件后缀是.h,head的简称。
头⽂件是源⽂件的辅助⽂件,⼀般把⼀些变量,函数定义到头⽂件,⽽函数的实现放在源⽂件。头⽂件主要解决可以拆分⼤的源⽂件,实现在在主函数中共享其他源⽂件的变量或函数。⽐如把输⼊/输出函数原型放在 stdio.h 中,把数学函数原型放在 math.h 中。头⽂件可以将源⽂件的有效信息提取出来,就像⾝份证吧⼀个⼈信息概括了⼀样。⼀般情况下,函数的声明,应该放在头⽂件。函数的实现与变量的定义应当放在源⽂件。
常⽤标准库头⽂件:
标准函数库
头⽂件
解释
assert.h包含了在辅助程序调试中怎加诊断功能的宏定义和相关信息
ctype.h包含了测试具有某种属性字符的函数,能够将⼩写字母转换成⼤写字母或者逆变换函数的函数原型
erron.h定义⽤于报告错误条件的宏
float.h包含了系统中浮点数⼤⼩的边界限制
limits.h包含了系统中整数⼤⼩的边界限制
locale.h 包含了能够修改程序中正在运⾏的当前现场的函数原型和其他信息,程序现场的标记使得计算机系统能够处理在表⽰诸如⽇期,时间,货币
总数及涉及巨⼤数值这样的数据时不同习惯的⽤法。
math.h包含了数学库的 函数原型
setjmp.h包含了能绕过通常的程序调⽤和返回序列的函数的函数原型
signal.h包含了处理在程序运⾏中产⽣的各种条件的函数原型和宏
stdarg.h定义处理传递给⼀个形参个数和类型都是未知的函数的⼀组实参的宏
stddef.h包含了C语⾔⽤来执⾏某种计算的数据类型的公共定义
stdio.h包含了标准的输⼊/输出库函数的函数原型,及其相关信息
stdlib.h包含了将数值转换成⽂本或者⽂本转换成数值函数,内存分配函数,随机数函数和其他⼯具函数的函数原型string.h包含了字符串处理的函数的函数原型
time.h包含了⽤于处理时间和⽇期的函数原型和数据类型
2- #include是预编译指令,将其他⽂件的内容包含进来。
如:#include<stdio.h>
#"
可以包含头⽂件,也可以包含其他任意类型的⽂件
预编译指令⼀般不需要加分号,对于 include来说,加上也不影响。
⽰例:
新建⼀个 txt 后缀名⽂件(任何后缀名称都可以)。如上图
在main 函数中调⽤:
#include<stdio.h>
int main (void)
{
#"  //也可以在 main 函数中引⽤
getchar ();
return0;
}
输出:
3 – C++的源⽂件是兼容C语⾔源⽂件,写C语⾔可以⽤C++的源⽂件(.cpp),也可以⽤C语⾔的源⽂件(.c) #include可以包含任意类型,不仅.h也可以.c,也可以.cpp。
综合⽰例:
/*
hotel.h :  头⽂件中定义常量和函数声明:*/
#pragma region 宏定义 -- 定义常量
#define QUIT  5
#define HOTEL1    80.00
#define HOTEL2  125.00
#define HOTEL3    155.00
#define HOTEL4  200.00
#define DISCOUNT  0.95
#define STARS  "**********"
#pragma endregion
#pragma region 函数声明
//给出选项列表
int menu (void);
//返回预定的天数
int getnights (void);
/*
计算价格并显⽰出来:
double 价格
int    天数
*/
void showPrice (double,int);
#pragma endregion
/*
hotel.c :旅馆管理函数 (实现 hotel.h 头⽂件函数)
*/
#define _CRT_SECURE_NO_WARNINGS //宏定义,去掉安全检查#include<stdio.h> //应⽤标准库函数
#include"hotel.h" //引⽤⾃定义函数。注意时 "" 号
int menu (void)
{
int code, status;
printf ("\n%s%s\n",STARS,STARS );
printf ("输⼊所需酒店的编号:  \n");
printf ("1) Fairfield Arms ,2) Hotel Olympic\n");
printf ("3) Chertowerthy Plaze 4) The Stockton\n");
printf ("5) 查询 \n");
printf ("\n%s%s\n", STARS, STARS);
while((status=scanf("%d",&code))!=1||(code<1||code>5))
{switch的用法c语言
if(status !=1)
{
scanf ("%*s");
printf ("请输⼊从 1 到 5 的整数!\n");
}
}
return code;
}
int getnights (void)
{
int nigths;
printf ("how many nigths are needed?\n");
while(scanf("%d",&nigths)!=1)
{
scanf ("%*s");
printf ("Plase enter an integer ,such as 2.\n");
}
return nigths;
}
void showPrice (double rate,int nigths)
{
double total =0.0;
double factor =1.0;
for(int i =1; i <= nigths; i++,factor *=DISCOUNT)
{
total += rate*factor;
}
printf ("The total cost will be $%0.2f.\n", total);
}
/*
程序⼊⼝函数
*/
#include<stdio.h>
#include"hotel.h"
int main (void)
{
int nigths;
double hotel_rate;
int code;
while((code=menu())!=QUIT)
{
switch(code)
{
case1:hotel_rate = HOTEL1; break;
case2: hotel_rate = HOTEL2; break;
case3:hotel_rate = HOTEL3; break;
case4:hotel_rate = HOTEL4; break;
default: hotel_rate =0.0;
printf ("Oops\n");
break;
}
nigths = getnights ();
showPrice (hotel_rate, nigths);
}
printf ("Thank you and goodbye!");
return0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。