导航:首页 > 源码编译 > 头文件编译条件

头文件编译条件

发布时间:2022-06-02 19:48:37

⑴ 请教高手关于头文件条件编译#ifndef的问题 下面的程序有哪位高手给解释一下啊 各个层次关系 小弟看不懂

最外层的#ifdef是这个样子:

#ifndef __MENU_H
#define __MENU_H
...
#endif /* __MENU_H */

这是为了确保menu.h只被包含一次。第二次包含时,由于__MENU_H已经被定义,整个文件的内容就被跳过了。

__cplusplus是个特殊的宏,只在C++程序中被定义。这样,在C代码中,看到的代码是这个样子的:

...
void Show_HomeScreen(void);

而在C++代码中,看到的则是这个样子:

extern "C" {
...
void Show_HomeScreen(void);

}

最主要的用处是函数被声明为extern "C",也就是在目标文件中用C的方式进行编码和查找。C的方式只有函数名,而C++的方式则把参数也编码了进去,这样才可能允许函数重载。比如,test(int)在C代码里的符号名就是test,而在C++中则不同。在MSVC(在不同编译器中不同)中是“?test@@YAXH@Z”。一个函数要同时在C和C++中使用,一般都回在头文件声明时放到一个extern "C"块里。

⑵ 关于C语言中头文件的条件编译的问题

例如,常会将结构体类型的定义放在头文件中(例如FILE结构体,tm结构体等),如果不加条件编译,那么就可能会出现同一个程序中的不同文件由于包含了同一个头文件而导致同一个结构体类型的重复定义,而C中不允许重复定义,所以会出错。

⑶ 关于c语言头文件编译和运行的问题

1、只要在程序开头加入#include<头文件名>,在编译过程当中,头文件自动会被添加到源文件当中一起进行编译。
2、编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件。

⑷ c++中如何编译头文件,编译头文件的作用,

编译头文件的理解窍门,在include语句。
你可以理解为,include就是替换,在编译的时候,在include的位置完整的将头文件“嵌入”进去,在cpp文件中共同编译。如果一个头文件没有被任何文件包含(include),那么它不会编译。
头文件,你可以简单的认为就是“避免重复”,将重复的声明放在一起,方便代码阅读和管理,同时头文件具有方便接口和安全检查方面的作用。

⑸ 为什么在头文件里面用条件编译呢程序如下

防止重复编译。比如,第一次使用该头文件后,LCDHEARD被定义过,以后再使用该头文件,就不会重新编译了。

⑹ 为什么C语言头文件中要用条件编译

如果你说的是文件中避免重复包含的预处理指令,有两个原因
a)重复编译相同的内容,即使不会导致语法错误,对编译器也是极大的开销,在大工程中,绝对是不可容忍的,持续编译集成的代价是很高的,能省必须省

b) 有很多语法元素是不可重复编译的,例如类型定义。你仅仅考虑变量,是远远不够的。实际中,变量在头文件中的使用是非常少的,因为全局变量也是能避免就避免的

⑺ c语言中如何编译头文件啊

  1. 只要在程序开头加入#include<头文件名>,在编译过程当中,头文件自动会被添加到源文件当中一起进行编译。

  2. 编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
    C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件。

阅读全文

与头文件编译条件相关的资料

热点内容
floyd最短路径算法c 浏览:382
新湖app在哪里下载 浏览:703
计算机图形学涉及的算法 浏览:369
阿里云linux一键web 浏览:25
弹性云服务器注册 浏览:169
垃圾程序员写出垃圾代码 浏览:760
帝国时代java下载 浏览:51
数据结构的经典算法题 浏览:194
逍遥安卓多开管理器是干什么的 浏览:914
程序员收玉米一天多少钱 浏览:355
程序员很可爱根据哪本小说改编的 浏览:984
游戏旧版安卓怎么玩 浏览:263
冗余单片机 浏览:849
cad抽壳命令怎么用 浏览:29
服务器第一地址怎么改 浏览:498
单片机最小系统电路设计流程图 浏览:669
steam源码 浏览:35
关于对数的运算法则及公式 浏览:781
明星谈如何缓解压力 浏览:147
androidlistview隐藏列 浏览:402