我在一个c程序文件中定义了一个静态全局变量和一个函数,这个函数用到了这个静态全局变量,而且对这个函数在头文件进行声明,静态全局变量不声明,让其他c文件调用这个函数,为什么可以成功,静态变量不是只能在本文件中调用吗?
4条回答 默认 最新
不停感叹的老林_<C 语言编程核心突破> 2023-08-16 19:24关注这正是全局static变量的用法, 隐藏变量, 防止污染全局空间.
*
函数定义在C文件中, 调用本文件的static变量, 此变量不会被其它C文件看到.
*
而此函数声明在H文件中, 其它含有此头文件的C文件可调用此函数, 此函数调用的static变量仍属于自己的翻译单元, 对外仍然隐藏, 哪怕其它C文件有相同名称的变量, 也不会混淆.本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用