2

是否可以将具有相同名称的变量声明到不同的结构中?例如:

struct first
{
    int a;
    int b;
    int the_same;
};

struct second
{
    int x;
    int y;
    int the_same
};
4

3 回答 3

4

是的,它们运行良好,因为它们属于不同的代码范围。您可以通过first.the_same和访问它们second.the_same

[...] 范围是名称解析的重要组成部分,而名称解析又是语言语义的基础。名称解析(包括范围)因编程语言而异,并且在编程语言中,因实体类型而异。与命名空间一起,范围规则在模块化编程中是至关重要的,因此程序的一个部分的更改不会破坏一个不相关的部分。[...]

于 2014-01-19T18:12:12.063 回答
1

是的,您可以在不同的结构中使用具有相同名称的变量。

struct first
{
    int a;
    int b;
    int the_same;
};

首先听到 a,b 和 the_same 是结构的元素。并且在结构上

struct second
{
    int x;
    int y;
    int the_same
};

x,y 和 the_same 是第二个结构的元素。

编译器将不单独使用结构名称引用此变量..

于 2014-01-19T19:59:21.653 回答
0

有可能这样做。您可能认为这就像 Enums 一样,如果您在 2 个不同的枚举中具有相同的值,您将收到编译时错误,但如果枚举命名空间不同,这将是可能的。例如:

namespace a {
   enum a { a, b, c }

}

namespace b {
   enum a {a, b, c}
}
于 2014-01-19T18:16:04.410 回答