C编程指令#include <stdio.h> printf

2 c linker compiler-directives include c-preprocessor

我有这个简单的你好世界计划.它说的第一行#include <stdio.h>.

我用谷歌搜索它,它基本上告诉预处理器定义输入/输出的功能.

第一个问题:
我读到函数的实际代码首先编译为目标文件.所以,如果我说#include <foo.bar>自动 linkes该目标文件?

第二个问题:
当我删除包含时,该程序仍然有效......我的意思是printf声明......为什么?

suj*_*jin 5

printf() 位于标准C库中,链接器将标准库链接到您的程序.

所以任何标准函数都不会出现任何链接问题.

如果您在不#include<stdio.h>使用的情况下编译程序,gcc则会收到警告.