gpt4 book ai didi

c - 使用预处理器从 C 中的函数中获取 "remove"前缀

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:46 25 4
gpt4 key购买 nike

我写了一个有很多功能的框架,它们的名字是这样的:ICE_ModuleType_FunctionUse()其他所有东西都有 ICE_ 前缀(类型名、定义等...)

对于预处理器,当用户知道与其他库没有冲突时,我想删除 ICE_ 以减少函数名称长度。

但我发现的唯一可行方法是像那样手动编写每个函数、类型等……:

#define ModuleType_FunctionUse ICE_ModuleType_FunctionUse

关于如何轻松做到这一点有什么想法吗?

最佳答案

您可以自动创建一个名称类似于 use_namespace_ICE.h 的新头文件供您的客户使用。该文件将包含所需的 #defines 列表,并且可以使用应用于您的库的实用程序 nmdumpbin 生成。

例如,如果 foo.c 是:

void ICE_ModuleType_FunctionUse(void) { /* code */ }

然后:

cc -c -o foo.o foo.c
nm foo.o | grep ' T _ICE_' | sed 's/.* T _ICE_\(.*\)/#define \1 ICE_\1/'

产量:

#define ModuleType_FunctionUse ICE_ModuleType_FunctionUse

关于c - 使用预处理器从 C 中的函数中获取 "remove"前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51456320/

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