变量声明和定义

时间:2010-10-25 07:54:49

标签: c declaration definition

int x;

这是宣言还是定义?

在编写以下代码时,

#include <stdio.h>

int main(void)
{
    int x;
    printf("%p",&x);
    return 0;
}

它打印一些地址。因此,在分配内存时,int x;不能只是一个声明。这是一个定义吗?

2 个答案:

答案 0 :(得分:3)

来自C standard (n1256)

6.7声明
...
5声明指定一组标识符的解释和属性。标识符的定义是该标识符的声明:

- 对于一个对象,导致为该对象保留存储;
- 对于一个函数,包括函数体; 101)
- 对于枚举常量或typedef名称,是(唯一)声明 标识符。

在这种情况下,int x;是定义(或定义声明)。

答案 1 :(得分:2)

int x;是一个定义。 extern int x;只是一个声明。 extern int x = 3;也是一个定义。 HTH