C中的别名函数和定义

时间:2015-01-23 03:37:28

标签: c macros c-preprocessor

我有一组 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_TESTXyz_Function1()时,我希望预处理器重命名用户对Abc_*ABC_*的使用情况到Xyz_*XYZ_*,但它不起作用。

我有什么遗漏或有其他办法吗?

0 个答案:

没有答案