C/C++ static extern的问题

发布网友

我来回答

2个回答

热心网友

#include<stdio.h>

void x(void);
void y(void);

int main(void)
{
;
}

void y(void)
{
static char b = '2';
;
}

int a = 1;
//a 改成这样,全局变量存储类型是static的,没有static标识链接属性是 external

void x(void)
{
int c = 3;
static char b = '2';
static float d = 4;

}

b 的解释:
链接属性 (none) 表示 被当做单独的实体,
也就是该标识符的多个声明被当做的不同的实体。
所以应该放在函数内部,两个变量b 是两个不同的实例
这样才符合 none 的要求

----------------------------------
在别的文件声明a,怎么能保证这个文件中的函数x能使用而y不能使用呢?

void y(void);
void x(void);

int main(void)
{
;
}

void y(void)
{
}

extern int a;

void x(void)
{
a = 1;
}

另外的文件中定义变量a

int a;

问一下这是什么地方的问题?
对于正确理解c中变量的各种属性真的是非常好

参考资料:原创

热心网友

static char b = 2;

void y()
{
return;
}

extern int a;

void x()
{
int c = 3;
static float d = 4.0;

return;
}

另一个C文件中定义全局变量a:
int a = 1;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com