目录
与””的区别">一、#include<>与””的区别
二、举例
三、附: 初学者常用标准库头文件简介
1.stdio.h
2.stdlib.h
3.math.h
4.stdbool.h
5.string.h
一、#include<>与””的区别
C语言包含头文件有两种写法#include
- #include <头文件> : 编译器只会从系统配置的库环境中去寻找头文件,不会搜索当前文件夹。通常用于引用标准库头文件。
- #include "头文件" : 编译器会先从当前文件夹中寻找头文件,如果找不到则到系统默认库环境中去寻找。一般用于引用用户自己定义使用的头文件。
二、举例
1.我们新建一个项目xx,只包含main.cpp一个文件
可以看到,无论是#include"stdio.h"还是#include
解析:1)使用#include
2.在xx项目中添加一个头文件stdio.h,并使用#include”stdio.h”
编译器报错,原因是printf未声明。
解析:使用#include”stdio.h”添加头文件时,编译器先到当前项目所在的文件夹中查找stdio.h头文件,发现用户自定义的stdio.h头文件,于是编译器将其复制到当前行。这里展开的头文件是用户自定义的头文件,用户自定义的stdio.h头文件没声明printf函数,所以当然会报错。
3.再往stdio.h文件里添加#include
程序就能正常运行了。
三、附: 初学者常用标准库头文件简介
1.stdio.h
定义了输入输出操作,包括标准格式化输入输出(scanf、printf),文件格式化输入输出(fscanf、fprintf),字符字符串输入输出(getchar、getsput、char、puts...)等等。
一般情况下,C程序都会包含输入输出操作,因此这是最常用的头文件。此外涉及文件的操作也常常需要包含stdio.h头文件。
2.stdlib.h
定义了几个通用功能,包括动态内存管理(malloc、free等),随机数生成(rand、srand),与环境的通信,整数算术,搜索,排序和转换。
涉及链表的操作,需要该头文件。
3.math.h
定义了三角函数、反三角函数、指数函数、对数函数、开平方sqrt()、开立方cbrt()、取绝对值fabs()等常见数学运算函数。
//注意:fabs参数为double类型,而abs参数为int类型。fabs是求实数的绝对值,abs是求整数的绝对值
4.stdbool.h
定义了bool类型。
在C99标准之前,C语言没有bool类型。C99标准中新增的头文件stdbool.h中引入了bool类型,与C++中的bool兼容。
此外C99新增的关键字_Bool可以表示布尔类型。
5.string.h
定义了操纵字符串和数组的函数。包括下列几个函数:
char * strcpy ( char *destin, char *source);//复制字符串
char * strncpy ( char *dest, char *src, size_t n);//将字符串src中最多n个字符复制到字符数组dest中
char * strcat ( char *destin, char *source);//连接字符串
int strcmp ( char *str1, char *str2);//看ASCII码,str1>str2,返回值 > 0;两串相等,返回0
size_t strlen ( const char *s);//求字符串的长度,从字符串的首地址开始到遇到第一个' '停止计数
void swab ( char *from, char *to, int nbytes);//交换字节
以上只是对部分C标准库头文件的简单描述,由于篇幅限制,很多函数声明、变量声明、宏定义未能展开来讲。此外除了上述5个头文件,C语言标准库头文件还有很多,这里仅指出了初学者经常用到的几个头文件。



