c与旧库的兼容性

c与旧库的兼容性,第1张

概述我有一个库1-1.h. #include <1-1.h>; 哪个有结构: struct bucket { ... } 不幸的是,这个库是三方的,他们已经在1.2中将struct bucket更改为bucket_t {…}.我的所有代码都使用了bucket,但我也希望它与bucket_t兼容. 是否有可能: #ifndef bucket typedef bucket_t bucket;#e 我有一个库1-1.h.
#include <1-1.h>;

哪个有结构:

struct bucket { ... }

不幸的是,这个库是三方的,他们已经在1.2中将struct bucket更改为bucket_t {…}.我的所有代码都使用了bucket,但我也希望它与bucket_t兼容.

是否有可能:

#ifndef bucket    typedef bucket_t bucket;#endif

(代码不起作用,但如果存在,我想将bucket设置为bucket_t.谢谢.

解决方法 一种选择是在项目或makefile中添加自己的预定义符号,以指定您使用的版本.像liBRARY1_1或liBRARY1_2之类的东西.如果两者都未定义报告错误.您可以使用自己的包含文件,如下所示.

如果您使用的每个版本的头文件不同…

my1-1.h

#if defined( liBRARY1_1 )#include <1-1.h>#elif defined( liBRARY1_2 )#include <1-2.h>typedef bucket_t bucket#else#error Please define liBRARY1_1 or liBRARY1_2 before including this file#endif

如果每个版本的标题使用相同的文件名…

my1-1.h

#include <1-1.h>#if defined( liBRARY1_1 )#elif defined( liBRARY1_2 )typedef bucket_t bucket#else#error Please define liBRARY1_1 or liBRARY1_2 before including this file#endif
总结

以上是内存溢出为你收集整理的c与旧库的兼容性全部内容,希望文章能够帮你解决c与旧库的兼容性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1244370.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存