首页 > 解决方案 > c 编程中标头的功能(工作)是什么?

问题描述

什么标题行在 c 编程中实际上做了什么?

#include<stdio.h>
int main ()
{
    printf("Hello World!\n");
    return 0;
}

这段代码在有或没有标题行的情况下给出相同的输出,为什么会这样?

标签: c

解决方案


标头只是定义原型,不导入任何东西,在 C 中你实际上并没有导入函数等。

当您使用 printf 时,您只是调用标准库 libc.so(如果在 linux 上工作),它无论如何都会打印字符串。

如果,您没有标准函数,则需要在标头中声明它,然后将从您的文件中获取该定义。

现在,作为兼容性问题,您应该把它说出来,因为只有在标头到位时才会添加库声明,例如特定类型和宏。

我把libc手册留在这里,你可以看看: https ://www.gnu.org/software/libc/manual/pdf/libc.pdf

要考虑的另一件事是性能,缺少宏会使您的程序受到影响(不是您的情况),但是在一个真正的大程序中,如果包含没有到位,这些将不会出现在您的程序中,所以..放置它们总是很好的做法。

更新:请注意,这不符合 C11,代码将适用于任何实现 preC11 标准。(在这里感谢@nm 的注释)


推荐阅读