c - 编写规则或约定并工作 - C 中的头文件

标签 c header-files

Possible Duplicate:
What are the point of header files in C?

我正在开发一个 UNIX 项目。经过大量搜索后,许多人建议使用头文件,因为它们用于编写需要在多个源文件之间共享的代码。

It is best to centralise the definitions in one file - Header File.

现在我有两个疑问:
1) 使用头文件而不是简单的 .c 文件有何意义。
this answer开始 我知道头文件没有编译为目标文件。 然后会发生什么(实际上gcc是如何对待它们的)?有什么好处? 我分享的答案想要指出什么?

2) 编写头文件的规则或约定是什么。我只知道这个:

Header files usually ONLY contain definitions of data types, function prototypes and C preprocessor commands.

我们可以只写这个,即这是一个规则或约定吗?

Can anyone tell me any source to learn how to write header files.

我只能找到这个 - Writing Larger Programs -其中包含的内容并不多。或者任何其他用于编写更好和优化的头文件的技巧或风格。

最佳答案

1) 头文件允许您在 .c 文件之间传递信息,例如定义或其他 .c 文件中是否存在函数,这允许您将逻辑上属于一起的代码保留在一个位置; #include 指令将命名文件视为其命名文件的一部分,这使您可以节省大量冗余输入

2) 约定是将#define、枚举和函数声明传递到 .h 文件中,并在 .c 文件中传递实际的功能代码(除了偶尔的静态内联函数之外)

规则是:无论编译器在不死的情况下吃什么,或多或少都是允许的,只要它能产生一个功能性的程序。这些约定的存在或多或少是为了帮助您使项目保持在可理解、可维护的状态。

关于c - 编写规则或约定并工作 - C 中的头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122923/

相关文章:

c - 如何在 64 位应用程序中使用 32 位指针?

c - 如何在 C 中将无符号整数作为二进制值返回?

c++ - 在什么情况下我们需要包含<cassert>?

c - 我是否需要显式包含共享库中使用的通用头文件(在包含路径文件夹中)?

c - C Header 在语言上是什么?

c - 从套接字读取缓冲区

c - scanf:检测到输入太长

c - C11 中迭代器声明的放置(编码风格)

C++ 不命名为类型

c++ - Linux 平台中的 extern "c"行为