

解决方案
30
你是不是没有包含头文件stdio,,他说你的printf为外部符号,就应该取不到printf这个函数,你开头用#include<stdio.h>吧这个头文件包含进去,,可能就是这个原因你编译器本人没用过,而且是中文的诶,,,编译器还是得看英文的,有助于学习,
20
-Wall -Wextra 把警告都打开,你就能看到相关警告了。
不包含需要的头文件会有什么问题?
a. 编译出错,例如类型未定义
b. 编译有警告但是可通过,不过运行会出错
c. 编译有警告但可通过,当时运行也没问题,但是换个环境(例如换了编译器,或现有编译器、依赖库升级,或换了操作系统),结果程序就运行出错了。
在你搞不清楚不包含头文件会有什么问题的时候,就老老实实的按照要求包含需要的头文件。
不包含需要的头文件会有什么问题?
a. 编译出错,例如类型未定义
b. 编译有警告但是可通过,不过运行会出错
c. 编译有警告但可通过,当时运行也没问题,但是换个环境(例如换了编译器,或现有编译器、依赖库升级,或换了操作系统),结果程序就运行出错了。
在你搞不清楚不包含头文件会有什么问题的时候,就老老实实的按照要求包含需要的头文件。