繁体   English   中英

变量声明和定义

[英]Variable declaration and definition

int x;

这是宣言还是定义?

当我写下面的代码时,

#include <stdio.h>

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

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

C标准(n1256)

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

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

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

int x ; 是一个定义。 extern int x; 只是一个宣言。 extern int x = 3; 也是一个定义。 HTH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM