1

关于声明;

C 和 C++ 中的每个对象声明都有两个主要部分:零个或多个声明说明符的序列,以及一个或多个声明符的序列,用逗号分隔。例如:
在此处输入图像描述

零说明符是否意味着声明一个名为的a变量

a;

并不是

int a;

? 我用一个例子试过这个

#include <stdio.h>

int main(){
     x = 9; 
     printf("%d\n", x);

return 0; 
}  

这给出了一个错误:

[Error] 'x' undeclared (first use in this function) 
4

2 回答 2

2

在 c89 中可以使用隐式int规则,但您至少需要一个限定符或存储类说明符。

auto x = 3;   /* allowed in c89, not valid in c99 */

static y = 4; /* allowed in c89, not valid in c99 */

const z = 5;  /* allowed in c89 , not valid in c99*/

a;      /* not valid in c89, c99 without a prior declaration */

b = 6;  /* not valid in c89, c99 without a prior declaration */
于 2013-07-19T17:54:54.000 回答
1

无论你从哪里得到这种说法,都是错误的。您必须至少有一个声明说明符才能使声明有效。这是标准中的相关位(这是一张图片,因为我无法使降价行为):

C11 关于声明的标准

于 2013-07-19T17:42:55.640 回答