0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

学益得智能硬件 来源:学益得智能硬件 2024-10-29 15:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

    关注

    6074

    文章

    45357

    浏览量

    664209
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144696
  • 函数
    +关注

    关注

    3

    文章

    4408

    浏览量

    66905
  • 编译器
    +关注

    关注

    1

    文章

    1670

    浏览量

    51113

原文标题:C语言并不是非要包含stdio.h

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问为什么加了stdio.h,sprintf还是用不了?

    请问为什么自己加了stdio.h,sprintf还是用不了?
    发表于 03-13 07:23

    库文件stdlib.hstdio.h不支持utoa()和snprintf()

    ; gt;但是函数只是把错误抛在上面。但并非总是如此。我想我需要知道STDLIB。hSTDIOh实际上是如何加载到项目中的,以及从何处来的。什么是对标准的内置库文件进行更改,这些文
    发表于 01-11 11:21

    ucos在PC机上的应用提示无法打开stdio.h文件

    为什么我编译#includevoid main(){while(1){printf("hello world\n");}}老是提示无法打开stdio.h文件?求大神解答
    发表于 04-28 23:13

    为什么烧写stdio.h屏幕会发黑?

    烧写stdio.h屏幕发黑 什么原因?
    发表于 08-23 05:45

    在嵌入式处理器环境中为什么汇编语言不需要堆栈?

    在嵌入式处理器环境中,为何C语言(函数调用)需要堆栈,而汇编语言不需要堆栈?据我所知,c
    发表于 03-20 04:35

    嵌入式开发中C语言编程的相关资料分享

    ,使用库函数是不可避免的。关于使用库函数的最简单的例子就是printf()。在Linux环境下的C语言编程中,库函数包括两个部分:一种是C语言的标准库函数,例如
    发表于 12-15 06:13

    编译显示fatal error: stdio.h: No such file or directory怎么解决?

    在编译通过命令arm-poky-linux-gnueabi-gcc test.c,编译程序时,显示fatal error: stdio.h: No such file or directory,用gcc编译不会报错!
    发表于 01-10 06:35

    基于单片机设计的软件时钟C语言程序

    本内容提供了基于单片机设计的软件时钟C语言程序 程序如下: #pragma db oe #include reg52.h #include absacc.h #include stri
    发表于 11-21 15:59 198次下载

    一些常见的C语言字符串操作

      #字符串倒序输出 实现逻辑,通过strlen获取字符串长度,然后通过 len/2 进行交叉赋值,这里需要注意,不需要考虑len是奇数还是偶数的问题。 如果len是奇数,最后一个字符就不需要倒序
    的头像 发表于 12-24 16:31 2528次阅读

    不需要电感器

    不需要电感器
    发表于 04-29 12:14 3次下载
    <b class='flag-5'>不需要</b>电感器

    C语言如何实现Hello xiaolin

    在上述程序里编译预处理命令称为文件包含命令,作用是在编译之前把程序需要使用的关于系统定义的函数printf()的一些信息文件stdio.h包含进来。
    的头像 发表于 03-08 16:06 601次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>如何实现Hello xiaolin

    不需要点表的工业网关”如何实现松下FPG-C32T2H数据采集和远程维护的物联网解决方案

    深控技术的 “不需要点表的工业网关” 实现松下 FPG-C32T2H 数据采集和远程维护的物联网解决方案
    的头像 发表于 10-12 11:30 1169次阅读
    “<b class='flag-5'>不需要</b>点表的工业网关”如何实现松下FPG-<b class='flag-5'>C32T2H</b>数据采集和远程维护的物联网解决方案

    C语言中的头文件能不能重复包含

    C语言中的头文件能不能重复包含? 比如代码写成这样,stdio.h 连续包含了两次。 #include #include int main(
    的头像 发表于 11-26 17:19 964次阅读

    stdio.h实现了printf函数?

    我们平时包含stdio.h 头文件,里面是不是实现了 printf 函数? 为什么会有这个疑问?因为每次使用 printf,就得包含 stdio.h ,这就导致很多同学误以为,
    的头像 发表于 12-18 10:28 892次阅读

    系统c盘满了怎么清理不需要文件

    c盘满了怎么清理不需要文件   你的 c: 驱动已经满了, 电脑变慢或者无法安装更新, 这是 windows 机器常见的问题, 不用当技术专家也能腾出空间, 这篇指南用简单安全的步骤帮你找到并删除
    的头像 发表于 11-22 09:30 717次阅读