c语言 c语言静态变量的作用域是生命期初始化是在?
浏览量:1248
时间:2021-03-17 19:00:22
作者:admin
c语言静态变量的作用域是生命期初始化是在?
static int gu32uutest=0//此变量的函数是整个测试。C void testfun(void),因为这个静态变量是在函数外部定义的。
}
Void testfun2(Void){testvar=2//在此处访问testvar将提示undefined,因为此变量是在另一个函数中定义的局部静态变量,仅在定义它的函数中使用。}如果在另一个C文件中访问g,比如main。测试也会出错。但其他功能在测试中。C可以叫它。
C中结构体变量为全局变量或静态变量时才能初始化么?
在ANSI制定C标准之前,正如书中所说,结构变量(或数组)只有在全局或静态变量时才可以初始化,局部动态结构变量(或数组)不允许初始化。但是1989年ANSI制定的第一个C标准(通常称为C89)规定允许初始化局部动态结构变量(或数组)。虽然你的书是2004年出版的,但它不符合C89的要求。太可惜了!不允许初始化本地动态集合类型的对象(如结构变量和数组),因为它效率太低,而且非常耗时,因为每次输入函数时都必须初始化动态本地变量。ANSI在制定C89标准时,考虑到在使用过程中对动态局部结构(或数组)进行初始化的实际需要,规定允许这种行为。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。