c语言修改其他程序定义的静态变量 C语言中关键字extern和static的区别是什么?
浏览量:4062
时间:2023-07-02 10:18:39
作者:采采
C语言中关键字extern和static的区别是什么?
你这个问题挺的。有两个关键词几乎完全不相关。区别真的很难回答。连接估计都是类型修饰符,差别太大。一般来说,extern修改全局变量或函数来表示外部引用。C语言还有一个特殊用法,extern C表示这个程序应该被认为是用C语言写的。
Static一般表示局部静态变量,可以用在函数或文件中。
c语言,如何声明定义一个在.h中和多个.c中都能使用的变量?
静态是声明外部变量仅限于这个文件的引用,是这个文件的全局变量。如果要在文件之间通用定义外部变量
变量的初始化?
一些编程语言不支持。;不一定要求程序员初始化变量(如VB),因为如果你不 t初始化,编译器/解释器会自动帮你初始化(变量数据类型的默认初始值会赋给变量)。
即使在C语言中,也有一些变量。;t需要初始化,比如静态变量。规则如下:对于原生数据类型,用对应类型的零值初始化;类中的静态对象由它们的默认构造函数初始化。
此外,全局变量以及calloc()函数分配的空间将被自动初始化。所以你理解的变量必须初始化。其实只是因为在C或类似语言中,局部自动变量和寄存器变量是从堆、栈或寄存器中临时分配(重用)的。我们不。;我不知道前面的代码对这个空间做了什么,所以这些值是随机的。
除非编译器设置为调试模式,此时编译器会自动初始化局部变量(0xcc),这也是有时候调试模式成功但释放模式错误的原因。
全局变量和静态变量不需要初始化是因为具有全局作用域(包括全局和静态)的变量会从全局变量区分配空间,而由于RAM内存的特性,这些变量会被自动清除。
方法可以定义静态变量吗?
是的,
方法内部的定义叫做 "局部变量 ",不是静态变量。局部变量可以 不能添加静态变量,包括受保护的、私有的和公共的,但是可以添加全局变量。静态变量在类中定义,在方法体之外,局部变量保存在堆栈中。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。