大帅的bk 2023-08-25 11:26 采纳率: 100%
浏览 108
已结题

函数在.h文件中一定要声明吗?

开发小新,在看工程代码的时候,发现有些函数在.c文件中定义了函数主体以后,在.h文件中进行了声明(不在其他.c文件中调用),而有些函数在.c文件中定义了之后却没有在.h文件中声明,这是为什么?声明与不声明有什么不同吗?

  • 写回答

4条回答 默认 最新

  • 关注

    有些函数在.c文件中定义了函数主体以后,在.h文件中进行了声明(不在其他.c文件中调用),而有些函数在.c文件中定义了之后却没有在.h文件中声明,这是为什么?
    声明与不声明有什么不同吗?


    你看的是工程代码, 那么这里的函数声明就非常的讲究了.


    单文件小练习, 无需考虑, 用不用头文件单独声明都是可以的.


    多文件工程, 则需要组织文件, 情况比较复杂


    a. 需要在多个文件调用的函数, 定义在C文件, 声明在.h文件, 在没有定义函数的文件中, 通过include头文件, 可以调用函数, 这个简单.


    b. 不需要跨文件调用的函数, 定义在C文件, 声明.h文件, 或不声明.h文件都可以, 但如果不在.h文件中声明, 那么.c文件中函数的相互调用, 一定要遵循先后顺序, 通常也会先在最开始统一声明, 最后进行定义, 防止某个函数调用一个在其定义以后才声明的函数, 这个是不合法的.


    c. 对于上一种情况, 对于非跨文件的函数, 请务必使用static关键字, 以防全局名称污染.


    多看看就好了, 自己踩几个坑自然就明白了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月4日
  • 已采纳回答 8月27日
  • 创建了问题 8月25日