我有一组 C API函数/定义前缀:Abc_ *和ABC _ *
Abc_Function1(int a);
#define ABC_TEST 1
在下一版API中,我需要将所有这些重命名为:Xyz_*
和XYZ_*
为避免破坏使用以前版本API的用户的流程,我想制作一些兼容性定义,以便用户可以使用Abc_Function1()
或Xyz_Function1()
调用相同的功能。
我尝试过以下方法:
Xyz_Function1(int a);
#define XYZ_TEST 1
#define Abc_ Xyz_
#define ABC_ XYZ_
...
Xyz_Function1(ABC_TEST); // Returns an error (ABC_TEST not defined)
Abc_Function1(XYZ_TEST); // Returns an error (implicit Abc_Function1)
当我尝试使用XYZ_TEST
或Xyz_Function1()
时,我希望预处理器重命名用户对Abc_*
和ABC_*
的使用情况到Xyz_*
和XYZ_*
,但它不起作用。
我有什么遗漏或有其他办法吗?