根据《C和指针》P47页
如果一个变量声明于代码块内部,在它前面添加extern关键字将使它所引用的时全局变量而非局部变量。
那么,在main函数声明一个extern修饰的变量,该变量也应该能在其他函数中使用,例如:
是不是我的理解出了偏差?http://ask.csdn.net/#
根据《C和指针》P47页
如果一个变量声明于代码块内部,在它前面添加extern关键字将使它所引用的时全局变量而非局部变量。
那么,在main函数声明一个extern修饰的变量,该变量也应该能在其他函数中使用,例如:
是不是我的理解出了偏差?http://ask.csdn.net/#
extern int n只是声明该变量,需要在某个地方定义该变量。
而且如果想在func函数中使用此变量,必须在文件头部定义此变量。
你的例子中没有定义语句, 你可以尝试下在main函数中直接打印n,也会报错的。
正确的写法如下:
#include <stdio.h>
int n;//此外为定义语句
void func(void)
{
extern int n;//声明语句
printf("%d",n);
}
int main()
{
n = 12345;
func();
return 0;
}