c – 以下结构是否相同?
发布时间:2020-12-16 09:40:15 所属栏目:百科 来源:网络整理
导读:我有一个结构定义如下: typedef struct { string foo;} A,B; 我还有一组功能如下: void Init(A *p) { p-foo;}void Init(B *p) { p-foo;} gcc抱怨说Init正在被重新定义.我可以简单地删除第二个Init函数吗?与B的类型相同吗? 解决方法 是的,A和B基本上只是
我有一个结构定义如下:
typedef struct { string foo; } A,B; 我还有一组功能如下: void Init(A *p) { p->foo; } void Init(B *p) { p->foo; } gcc抱怨说Init正在被重新定义.我可以简单地删除第二个Init函数吗?与B的类型相同吗? 解决方法
是的,A和B基本上只是同一类型的不同别名.
我认为如果给结构本身命名,代码会更清楚,并将Init定义为一个带有指向结构的指针的函数: struct MyStruct{ string foo; }; typedef MyStruct A,B; void Init(MyStruct *p) { p->foo; } 然而,这只是个人偏好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |