关于 静态函数 生命周期 的有关问题
关于 静态函数生命周期 的问题在C++中,类的静态方法属于类,只能使用同样属于类的静态变量。但是在C中,静态
关于 静态函数 生命周期 的问题
在C++中,类的静态方法属于类,只能使用同样属于类的静态变量。
但是在C中,静态变量是否只是用于控制文件内部链接性的? C语言的静态函数是否能操作非静态变量?在C语言,讨论静态函数的生命周期有意义吗?
static void func(int a)
{
printf("%d\n",a);
}
int main()
{
int c=99;
func(c);
return 0;
}
这个例子向func静态函数传递一个栈变量,内部发生了什么?我对这里不理解,麻烦大家帮帮忙。
[解决办法]一个类的静态成员函数中操作非静态成员变量,理由很简单:静态成员函数是类级别的,而非静态成员变量时对象级别的。
楼主给出的那个c语言的func静态成员函数,除了它只能在声明它的文件当中可见,不能被其他文件使用外,加不加static应该都没有什么意义。不在任何花括号内声明的变量或函数都是全局的,而全局的静态变量或静态函数都只在声明它的文件中可见。
建议楼主参考:
static关键字
[解决办法]static的含义是“overload”的。