题目
为什么C语言要分. h和. c文件,这样有什么好处?
- 能不能把函数及变量的声明放在源文件里?
- 能不能把函数和变量的定义放在头文件里?
- 能不能在两个头文件里都声明同一个函数或者变量?
- 能不能在两个源文件里都定义同一个函数或者变量?
看法
*.h 文件为 C/C++ 中的头文件,内部包含了一些宏定义、变量定义以及函数的申明
*.c 文件为 C/C++ 中的可生成可执行程序的文件,内部也包含了一些宏定义、变量定义以及函数的申明
但这样分开写后,有利于代码的维护和开发。在 *.c 文件中,会使用到 #include 语句打开的 *.h 库中,所有未与源程序冲突的定义
如此一来,程序的模块化程度更高。当需求修改或代码更新时,只需要修改其在 *.h 中的定义即可修改到所有的 *.c 文件;否则,需要对每个 *.c 文件逐一修改,既不利于高效率地开发,又加大了出错率
现在回答上述四个问题:
首先,对于函数及变量的申明和定义,肯定是既能放在源文件里,又能放在头文件里的。
其次,对于问题三,经过实验证明,可以在两个头文件内申明同一个函数或变量,但不能同时打开两个头文件
但若使用如此方法处理:
#ifndef XXXXXX
#define XXXXXX
//定义的内容
#endif
则可以同时打开,但只能使用到第一个打开的库所申请的内容
对于问题四,经实验证明,同一项目中,两个源文件不得定义同一个函数或变量。但不同项目的不影响。