Loading

全局函数和静态函数的区别

目录


    返回 我的技术栈(Technology Stack)



    在C语言中函数默认都是全局的,使用关键字static可以将函数声明为静态,函数定义为static就意味着这个函数只能在定义这个函数的文件中使用,在其他文件中不能调用,即使在其他文件中声明这个函数都没用。

    对于不同文件中的staitc函数名字可以相同。

    image

    函数类型 作用域 生命周期 存储位置
    全局函数 项目中所有文件 从程序创建到程序销毁 代码区
    静态函数 定义所在的文件中 从程序创建到程序销毁 代码区

    注意:

    • 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰。
    • 同一源文件中,允许全局变量和局部变量同名,在局部变量的作用域内,全局变量不起作用。
    • 所有的函数默认都是全局的,意味着所有的函数都不能重名,但如果是staitc函数,那么作用域是文件级的,所以不同的文件static函数名是可以相同的。

    参考:
    [1]C基础讲义2018修订版(黑马程序员)


    posted @ 2021-07-25 11:25  言非  阅读(1137)  评论(0编辑  收藏  举报