C语言 如何从另一个源文件中别名一个函数?

qyzbxkaa  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(119)

我需要一个源文件中的函数在另一个源文件中具有相同的功能,但名称不同。
我已经确定了一些选项和它们的一些缺点:

  • Package 函数添加的函数调用,除非它被编译器优化
  • 宏别名-使用小写字母更符合逻辑和美观,但会导致不一致,因为通常将所有宏(甚至函数宏)大写,以便它们可以识别
  • inline -我不确定你是否可以从另一个源文件内联函数

最佳解决方案是什么?
最佳解决方案是什么?

envsm3lx

envsm3lx1#

使用函数的原始名称声明函数,并使用新名称创建一个指针:

extern void b(void);
static void (* const a)(void) = b;

在GCC或Clang中,使用扩展名在对象模块中使用与源代码中使用的名称不同的名称:

extern void a(void) __asm__("_b");

(根据构建目标,对象名称可能需要b_b。)

相关问题