- 论坛徽章:
- 0
|
以下是一个文件中的两个函数(这个文件中有很多这样的函数)【程序没有错误】
----------------------------------------------------------------------
char *fun1(int unit, int bss)
{
char name[60], *p;
static char value[8+1];
sprintf(name,"wlan%d_ssid%d_pin",unit,bss);
p = nvram_get(name);
strcpy(value, p);
NVRAM_FREE(p);
return value;
}
char * fun2(int unit,int bss)
{
char name[60], *p;
static char value[MAX_VAPNAME+1];
sprintf(name,"wlan%d_vap%d",unit,bss);
p = nvram_get(name);
strcpy(value, p);
NVRAM_FREE(p);
return value;
}
==============
上面两个函数中都有一个叫做value的变量
以前大家告诉过我:
static 变量是存储在全局数据区,并且生命周期是直到程序结束。
问题:
fun1 和 fun2 中的 value 都是static变量,所以都要存储在全局数据区,但是它们的变量名都是value,这个时候不就相当于在全局数据区内有两个叫做vlaue的变量嘛?为什么不会矛盾?
[ 本帖最后由 anank 于 2008-10-3 14:48 编辑 ] |
|