我们在写单片机程序的时候,第一行都会包含 reg51.h,于是就有同学提出了疑问,为什么不需要包含 stdio.h?
如果从C语言本身来讲,一个完整的 C 代码并不需要包含头文件。
标准中也提到,程序的入口是 main 函数,它应该有个整型返回值,参数可有可无。
所以一个最简单的 C 代码应该是这样。
int main(void) { return 0; }
至于它的返回值,即使写成 void,很多编译器也不会提示问题。
那我们学习C语言的时候,为什么在第一行加上 stdio.h?
因为在代码中用到了 printf,使用函数,就得提前声明,告诉编译器它是个函数,并且函数原型是什么样。
而 printf 函数的声明,就放在了 stdio.h 里面。
如果程序里面用不到输入输出相关的函数,完全可以不包含 stdio.h。
再回到 51 单片机上。
作为一个裸机程序,很多时候,我们用不到 printf,所以也就很少包含 stdio.h。
包含 reg51.h,主要还是因为这里面定义了很多寄存器,比如点灯需要用到的 P1 等等,打开 reg51.h,你会发现,它其实就是个地址。
-
单片机
+关注
关注
6032文章
44513浏览量
632696 -
C语言
+关注
关注
180文章
7597浏览量
136120 -
函数
+关注
关注
3文章
4303浏览量
62411 -
编译器
+关注
关注
1文章
1618浏览量
49043
原文标题:C语言并不是非要包含stdio.h
文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论