【发布时间】:2013-03-31 21:45:25
【问题描述】:
在下面的代码中,为什么全局变量“x”的定义显示警告“数据定义没有类型或存储类”但同样的事情对局部变量“y”工作正常?我正在做的一切对于每个变量,首先在一个语句中声明它们,然后在另一个语句中定义它们。它对一个变量工作正常但对另一个变量显示警告有什么区别?
#include<stdio.h>
int x;
x=303;
int main(void)
{
int y;
y=776 ;
printf("The value of x is %d,and of y is %d",x,y);
}
【问题讨论】:
-
该代码甚至无法编译。您不能在全局范围内拥有语句。
-
恐怕它在 CodeBlocks (Windows) 中编译得很好,并根据需要显示输出。但是编译会抛出我提到的警告。你使用的是哪个编译器?
-
“首先在一个语句中声明它们,然后在另一个语句中定义它们” - 不,您在一个语句中定义(并声明)它们并在另一个语句中分配给它们。所以你的基础知识错了……是时候更多地学习这门语言了。
-
"那段代码甚至无法编译。" -- 你试过了吗?这是合法的 C89。
标签: c expression declaration