gpt4 book ai didi

c - 如何解析两个同名的结构体?

转载 作者:太空狗 更新时间:2023-10-29 17:19:28 26 4
gpt4 key购买 nike

在我的代码库中,我发现两个模块具有同名的结构。它给出了名称冲突错误。有没有办法不改代码就解决?

最佳答案

这是一个糟糕的 hack,但可以使用宏来重新定义结构的名称,就像这样

// a.h
struct collide {
int a;
};

// b.h
struct collide {
float b;
};

// test.c
#define collide a_collide
#include "a.h"
#undef collide
#include "b.h"
int main(){
struct a_collide a;
struct collide b;
return 0;
}

您可能想重命名两个 header 的结构,以便在有人不可避免地使用错误的结构时给出错误,可能是在像这样的包装器 header 中

// wrap_a.h
#define collide a_collide
#include "a.h"
#undef collide

请记住取消定义宏,这样您就不会在整个代码中随机替换。

关于c - 如何解析两个同名的结构体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2680502/

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