我们在写单片机程序的时候,第一行都会包含 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,你会发现,它其实就是个地址。
全部0条评论
快来发表一下你的评论吧 !