gpt4 book ai didi

c++ - 外部未命名结构对象定义

转载 作者:行者123 更新时间:2023-12-01 02:33:47 25 4
gpt4 key购买 nike

我有一个“未命名结构”类型的全局对象,我正在尝试定义它。我不想用这种无用的类型污染我的全局命名空间(它只会被使用一次)。

Global.h

extern struct {

int x;

} A;

有没有正确的方法来定义这样的对象?
我正在尝试这个:

Global.cpp
struct {

int x;

} A = { 0 };

但是 VS2012 会抛出“错误 C2371:'A':重新定义;不同的基本类型”。谢谢。

最佳答案

一种可能的解决方案:创建另一个不包含 Global.h 的文件 Global_A.cpp,并定义 A那里。根据等效定义规则,只要匿名结构定义是等效的,这将是有效的。

这仍然是一个坏主意,大多数编译器都会对此发出警告,例如(gcc): 警告:非局部变量 ` A' 使用匿名类型。

关于c++ - 外部未命名结构对象定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11349345/

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