首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于 静态函数 生命周期 的有关问题

2013-04-21 
关于 静态函数生命周期 的问题在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”的。

热点排行