gpt4 book ai didi

c - 嵌套结构的范围是什么?

转载 作者:行者123 更新时间:2023-11-30 19:22:15 25 4
gpt4 key购买 nike

我正在伤害以下代码:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
struct test1
{
struct test2
{
struct test3
{
enum TokenType
{
COMMA_TOKEN, EOF_TOKEN,
} token_value;
} b;
} c;
};

struct test2 hsd;
hsd.b.token_value = 2;

return 0;
}

strut test2、test3和enum的作用域应该在struct test1内吗?但是编译器没有报错,顺便编译一下MinGW GCC。

最佳答案

在 C 中,这样的代码是允许的,因为所有类型都在单个命名空间中声明。

在 C++ 中,编译器应该产生错误,因为 struct test2 是在 struct test1 的范围内声明的。在 C++ 中,您的变量应声明如下:

    test1::test2 hsd;

关于c - 嵌套结构的范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17405213/

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