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

请问上extern不同类型同一变量名的有关问题

2012-09-24 
请教下extern不同类型同一变量名的问题//fruit.c#include fruit.h#include stdio.hint a 4void Pri

请教下extern不同类型同一变量名的问题
//fruit.c
#include "fruit.h"
#include <stdio.h>
int a = 4;
void Print(void)
{
printf("%d", a);
}

//fruit.h
#ifndef _FRUIT_H_
#define _FRUIT_H_
void Print(void);

#endif // _FRUIT_H_

//main.c

#include <stdio.h>
#include "fruit.h"
extern char a;
int main(void)
{
Print();
a = 3;
Print();
return 0;
}
请问下:对于编译器而言,这样是不是未定义,还是进行了牛叉的转换?VC6.0输出:43

[解决办法]
没错,是未定义行为。

事实上,这也是我们要通过头文件进行局部化的主要原因。
[解决办法]
不建议些同名变量,如果有,尽量将不需要暴漏的变量名前加static关键字,让该变量只在所处的文件中可以被访问。

热点排行