栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言常见问题(一)——头文件<>与””的区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言常见问题(一)——头文件<>与””的区别

目录

与””的区别">一、#include<>与””的区别

二、举例

三、附: 初学者常用标准库头文件简介

1.stdio.h

2.stdlib.h

3.math.h

4.stdbool.h

5.string.h


一、#include<>与””的区别

C语言包含头文件有两种写法#include 和#include "stdio"(#include后面可以不空格),两种写法的区别如下:

  1. #include <头文件>  : 编译器只会从系统配置的库环境中去寻找头文件,不会搜索当前文件夹。通常用于引用标准库头文件。
  2. #include "头文件"  : 编译器会先从当前文件夹中寻找头文件,如果找不到则到系统默认库环境中去寻找。一般用于引用用户自己定义使用的头文件。

二、举例

1.我们新建一个项目xx,只包含main.cpp一个文件

 

 可以看到,无论是#include"stdio.h"还是#include程序都能正常运行

解析:1)使用#include添加头文件时,编译器到标准库头文件中查找,发现stdio.h头文件,将其复制到当前行;2)而使用#include”stdio.h”添加头文件时,编译器先到当前项目所在的文件夹中查找stdio.h头文件,发现没有这个头文件,于是编译器到系统默认库环境中去寻找,发现stdio.h头文件,将其复制到当前行。这里展开的stdio.h头文件和#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语言标准库头文件还有很多,这里仅指出了初学者经常用到的几个头文件。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347130.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号