c - c 编程中标头的功能(工作)是什么?
问题描述
什么标题行在 c 编程中实际上做了什么?
#include<stdio.h>
int main ()
{
printf("Hello World!\n");
return 0;
}
这段代码在有或没有标题行的情况下给出相同的输出,为什么会这样?
解决方案
标头只是定义原型,不导入任何东西,在 C 中你实际上并没有导入函数等。
当您使用 printf 时,您只是调用标准库 libc.so(如果在 linux 上工作),它无论如何都会打印字符串。
如果,您没有标准函数,则需要在标头中声明它,然后将从您的文件中获取该定义。
现在,作为兼容性问题,您应该把它说出来,因为只有在标头到位时才会添加库声明,例如特定类型和宏。
我把libc手册留在这里,你可以看看: https ://www.gnu.org/software/libc/manual/pdf/libc.pdf
要考虑的另一件事是性能,缺少宏会使您的程序受到影响(不是您的情况),但是在一个真正的大程序中,如果包含没有到位,这些将不会出现在您的程序中,所以..放置它们总是很好的做法。
更新:请注意,这不符合 C11,代码将适用于任何实现 preC11 标准。(在这里感谢@nm 的注释)
推荐阅读
- django - 从models.py和Django下面的这个函数开始获取登录的用户IP
- node.js - 更新 NgFor 表中的行
- shopify - Shopify Grid 产品图片消失
- reactjs - i18next-react 和自定义格式
- javascript - Python和Node Js(如果客户端没有python怎么办)
- react-native - 使用带有反应原生的条件图像显示
- nginx - 对静态文件的 XHR POST 请求的 HTTP2 Nginx 服务器 200 响应
- javascript - 尝试在 react-native-jw-player 的 ios 中运行本地存储路径
- html - 一个 div 没有出现,它不可见
- amazon-web-services - Jenkins ECR - 无法运行程序“docker”