C++ 在结构中定义常量

C++ 在结构中定义常量,c++,structure,C++,Structure,如图所示,在结构内部定义常量数据是否有特殊意义。这是来自第三方库 typedef struct { IntVB abc_number; #define ABC_A 0x01 #define ADBC_E 0x02 IntVB asset; } StructA; 不是真的。它们可能在代码的这一点上为程序员提供了更好的意义 这意味着这些常量可能与该

如图所示,在结构内部定义常量数据是否有特殊意义。这是来自第三方库

typedef struct              
{           
    IntVB abc_number;           
    #define ABC_A   0x01    
    #define ADBC_E  0x02     
    IntVB asset;            
} StructA;

不是真的。它们可能在代码的这一点上为程序员提供了更好的意义


这意味着这些常量可能与该结构容器中的项或结构的行为有关。

否,可以在没有任何作用域的情况下调用它们。

同意@Luca Matteis。它们可能是在那里定义的,因为它们在代码中的那一点上是相关的。编译器没有特别处理它们。特别是,它们可以在该结构之前定义,并以相同的方式工作。他们呆在里面没有什么意义


但是,有一点需要注意,它们只有在定义之后才有效。因此,它们不能在文件的前面使用。这可能意义重大。例如,在这一点之前,它们可以有不同的定义。(这样做是个坏主意,但这是可能的。)

在上述情况下,甚至不可能在运行时访问这些常量,因为它们只是
#define
。不确定它们在这里有什么意义。在C++中,你不应该使用宏来使用它们。它们应该使用const定义,它将给数据提供运行时访问,将被键入并具有范围。@ SBI:如果你看TyEnFIFF,它会告诉我,当OP处于C++中时,第三方标题源于C.@DeadMG:这里的问题和答案的数量,人们在这里无意识地使用C的
typedef struct{}blah语法使我怀疑它确实是C++的50%几率,但是写它的人比C++宏的对象要少很多。是的,但是我不认为它们在文件的其他地方被重写。