C语言为什么不需要包含stdio.h

描述

我们在写单片机程序的时候,第一行都会包含 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,你会发现,它其实就是个地址。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分