gpt4 book ai didi

c - 声明和定义问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:39 25 4
gpt4 key购买 nike

我知道这个问题已经被问过很多次了,但是我没有找到任何相关的答案。根据 C

int x;       //definition

extern int x; //declaration

int func(void); //declaration
int func(void) //definition
{

}

我的第一个问题是如果 int x 是定义,那么为什么编译器会显示重新声明错误

header files
int main()
{
int x,x; //for this it shows redeclaration error
}

我的第二个问题是,如果我定义了 var x,两次它都没有显示任何错误

header files
int x;
int x;
int main()
{

}

我正在使用 window 7 和 DevCpp 5.6.2

编辑:

header files
int y;
int main()
{
int x;
}

x 和 y 是这里的定义吗?

最佳答案

在文件范围内声明一个没有初始化器(也没有存储类说明符)的变量是一个暂定定义:

int i;

在同一个源文件中对同一个变量有多个暂定定义是有效的:

int i;
int i;

C 指定的行为就好像在源文件的顶部有一个声明,在源文件的末尾有一个int i = 0;

在 block 范围内没有暂定定义,在同一个 block 中多次声明同一个变量是无效的。

关于c - 声明和定义问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com