最近在学C语言,但是不理解书上说的预编译,到底什么是预编译?何时需要预编译?预编译一般有什么用处啊??求大佬释疑^_^

上传的附件
你的回答被采纳后将获得: 6点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 大家自己开发小游戏时候的素材都是去哪里找的? 声明一个类Jetplane,它是从Rocket和Airplane继承而来的,该如何编码 : 下一篇keyboard_arrow_right

2个回答

Foooooooood
2019-01-08 09:03:48

预编译又称为预处理 , 是做些代码文本的替换工作。

处理以 # 开头的指令 , 比如拷贝 #include 包含的文件代码,#define 宏定义的替换, 条件编译等,就是为编译做的预备工作的阶段。

主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。

C 编译系统在对程序进行通常的编译之前,首先进行预处理。

C 提供的预处理功能主要有以下三种

  • 宏定义

  • 文件包含

  • 条件编译

何时需要预编译

  • 总是使用不经常改动的大型代码体

  • 程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个“预编译头”

HlPH0P
2019-04-12 08:06:10

在编译之前做的操作,例如导入库之类的

精彩评论

  • 有c++基础如何学习Java
    如果你已经学过c++了,那基本上你花半天时间就可以学会java的语法了, 因为面向对象编程都类似,封装、继承、多态,剩下的就是写几个java程序熟悉下常用的库函数就行了。书的话就不具体推荐了,你就自己去网上书店找java入门教程,有详细语法教程的都可以
    2020-05-23 12:53:20 thumb_up( 2 )
  • qt+Mysql 发布 无法连接数据库的问题
    完蛋了…..问题已解决!解决办法:确实是在exe的同级目录中加入libmysql.dll。但是加了还没用的话,可能是你的libmysql.dll没用,所以你需要重新下载一个可用的libmysql.dll。-_-这个问题我找了半天….希望这个帖子对你们有用.
    2019-05-08 10:43:32 thumb_up( 6 )
  • html表单中submit提交按钮具体作用是什么啊??
    <input type="submit"> 定义了提交按钮 当用户单击确认按钮时,表单的内容会被传送到另一个文件。表单的动作属性定义了目的文件的文件名。由动作属性定义的这个文件通常会对接收到的输入数据进行相关的处理。
    2019-02-13 09:21:43 thumb_up( 7 )
  • 已经有malloc/free了,C++中为什么还需要new/delete
    对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。 对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。 由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。
    2019-02-28 15:16:19 thumb_up( 8 )
  • Python后端开发
    第一个问题无论是哪个方面,都要多练,多些项目,这样你才能在开发岗闯出一片天地。 第二个问题可以,只要肯学肯练,三个月出师的不在少数,毕竟开发岗和算法岗不是一个性质。 个人想法现在互联网的泡沫开始破了,的确有很多小公司,新公司。但是,这种公司不锻炼能力,而且要求你会的特别多,不仅仅是用作技术岗,有的小公司还要兼运营岗。不如去大厂学习,再往中小企业跳。
    2019-02-13 20:17:03 thumb_up( 4 )
  • 有c++基础如何学习Java
    在学习完java语法基础上,感兴趣的话可以继续学习java gui的开发,学习下java的界面布局、常用控件等
    2020-05-23 12:54:21 thumb_up( 1 )
eject