加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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;
}

然而,这只是个人偏好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读