许多程序员在编写代码时没有仔细研究一些细节,例如今天提到的#include相关内容。
01关于#include首先,#include是一条准备好的语句,那么什么是准备好的语句?预备语句的最明显标志是一些特殊的语句,它们在行的开头以#开头。
例如:#include,#define,#if等是准备好的语句。
在对程序进行其他编译处理(词法分析,语法分析,代码生成,优化和连接等)之前,首先要对这些语句进行分析处理。
在编译工具中,有一个预处理器。
预处理程序找到#include指令后,它将执行一些预处理操作。
02 #include的定义如果您正在观看某些C / C ++教程,则可能会发现某些教程中的#include命令写为#include,但有时#include是“文件名”。
出现。
您会想知道,哪个是对的?为什么会有这两种不同的写作方式? 1.#include系统附带的头文件用尖括号括起来,以便编译器在系统文件目录中搜索。
2.#include“ xxx.h”用户定义的文件用双引号引起来,编译器将首先在用户目录中搜索,然后在C ++安装目录(例如VC)中,可以指定和修改库文件的搜索路径,可以在Unix和Linux上进行设置通过环境变量),最后在系统文件中。
这两种书写方式都是正确的,但是它们是不同的。
我们知道C / C ++已经有一些写得很好的头文件(例如标准函数库等),它们存储在VC ++的Include文件夹中。
当我们使用#include命令时,编译器将转到该文件夹以找到相应的文件。
显然,使用这种写入方式包括我们编写的头文件(不在Include文件夹中)会出错。
因此,当包含C ++提供的头文件时,应使用尖括号。
相反,#include“文件名”命令首先在当前文件所在的目录中搜索相应的文件,然后在Include文件夹中搜索相应的文件(如果没有)。
因此,无论文件是由C ++提供还是由您自己编写,都可以使用#include“文件名”命令必须正确。
这就是为什么#include“文件名”本书本节之前的程序中始终使用命令。
03关于尖括号在C ++标准中,包括C ++提供的头文件在内的文件未写为#include。
例如,#include的编写已过时。
正确的措词是#include,应使用std名称空间。
有些程序使用了命名空间std。
它是按照此标准编写的。
名称空间也称为名称空间,它主要用于避免大型程序开发中的标志冲突。
该标准还规定了如何在C ++中包括C头文件,感兴趣的读者可以在Internet上检查这些信息。
尽管以上两个#include命令可以被VC ++正确识别,但是它们不符合C ++标准。
该标准规定,在包括由C ++提供的标准头文件或系统头文件时,应使用尖括号,在包括自定义头文件时,可使用双引号。
尽管某些文件是系统文件,但是如果您的项目包含相应的文件,请使用#include“ xxx.h”不会报告错误(例如,在Keil中使用#include“ stdio.h”),但仍建议使用标准代码。
也许您习惯于复制和粘贴,却不知道它是#include还是#include“ xxx.h”。
不再。
追踪微信公众号“ Fun Zhuan Embedded”,回复“ 128”。
在后台获取干货信息的摘要,并在步骤256中回复“ 256”。
加入技术交流小组。
推荐的精彩技术文章01 |常用验证算法简介02 | C语言,经典排序算法的动态显示03 |插入排序:最直观的排序算法04 |气泡排序,经典排序算法本文来自电子工程专辑免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!