嵌入式之家

 找回密码
 现在注册

QQ登录

只需一步,快速开始

搜索
热搜: ARM cortex
查看: 4494|回复: 2

.h文件

[复制链接]

该用户从未签到

32

主题

81

帖子

771

积分

高级会员

Rank: 4

积分
771
发表于 2016-3-16 17:47:01 | 显示全部楼层 |阅读模式
h文件作用:  
 1.方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;
2. 使函数的作用域从函数声明的位置开始,而不是函数定义的位置(实践总结)
3 .提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。
h文件里应该有什么:常量,结构,类型定义,函数,变量申明。
h文件不应该有什么:变量定义, 函数定义。
prt()
{
  printf("Hello World!\n");
}
main()
{
    prtr();
}
没有.h文件,编译仍可以顺利通过。再把程序改动下:
main()
{
 prtstr();
  }

  prt()
{
    printf("Hello World!\n");
}
没有.h文件,编译失败。C语言中的概念:作用域。
  讲述与.h文件相关的顶层作用域, 顶层作用域就是从声明点延伸到源程序文本结束, 就prtstr()这个函数来说,他没有单独的声明,只有定义,那么就从他定义的行开始,到文件结束, 也就是说,在第一个程序的main()函数的引用点上,已经是他的作用域。第二个程序的main()函数的引用点上,还不是他的作用域,所以会编译出错.
  play2()
  {
       play1();   
  }
     
  play1()
  {
        play2();         
}     
main()
{
      play1();
}

这就是经常用到的一种算法, 函数嵌套。play1 和play2 使用声明.
play1();
play2();
play2()
{
  play1();
}
  play1()
{
  play2();
}
main()
{
  play1();
}

  一个软件项目,可能有许多个 play, 就需要我们想办法把这样的 play1(); play2(),进行管理, 而不是把他放在.c文件中, 于是.h 文件出现了.
回复

使用道具 举报

  • TA的每日心情
    开心
    2020-6-18 22:00
  • 签到天数: 1 天

    [LV.1]初来乍到

    101

    主题

    192

    帖子

    1645

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1645
    发表于 2016-3-17 09:16:23 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    55

    主题

    168

    帖子

    1767

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1767
    发表于 2016-3-17 16:30:28 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 现在注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|嵌入式之家 ( 京ICP备14038168号-1 )

    GMT+8, 2024-5-20 22:54 , Processed in 0.021590 second(s), 26 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表