标准库的头文件应该写在哪里?是写在.c文件还是.h文件中?

4

我有以下简单的代码:

mainc.c:

    #include <stdlib.h>
    #include "hello.h"


    int main (int argc, char *argv[])
    {
      hello ();
      return EXIT_SUCCESS;
    }

hello.c:

    #include "hello.h"

    void hello (void)
    {
      printf ("Hello world!");
    }

hello.h:

    #ifndef _HELLO_H_
    #define _HELLO_H_
    #endif

我需要在hello中包含stdio.h,以便能够访问printf()函数。

我应该在哪里包含它?在hello.c还是hello.h中?是否有最佳实践,因为这两个解决方案似乎都是正确的?


在需要的地方包含头文件。如果您的头文件中需要结构、类型、宏或函数声明,则在头文件中包含相应的头文件。至少这是我的观点 - Some programmer dude
还要注意,以下划线开头并后跟大写字母的符号(例如 _HELLO_H_)是保留的。您不应该自己定义(作为宏或其他任何内容)。 - Some programmer dude
在当前的使用情况下,正确的方法是在hello.c中包含stdio.h吗? - T. Decker
1
对于这个简单的例子,是的。并且不要忘记在 hello.h 头文件中声明 hello 函数。 - Some programmer dude
1个回答

5

应用程序中的头文件应仅包括必需的系统头文件,以在头文件中声明进一步的接口。

例如-- 如果您的头文件包括需要FILE *参数的函数,则应#include <stdio.h>。如果它声明一个包含uint32_t的结构体,则应#include <stdint.h>。等等。

只在实现中使用的系统头文件应留给.c文件。例如,您的头文件不应#include <stdio.h>,因为实现调用了printf()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接