C语言函数名alias

1、宏定义覆盖

函数名在C语言中是一个指针即地址,而宏定义#define可将任何文本进行替换,包括函数名,例如

#define func  func_renamevoid func(void)
{...    //函数体
}

那么在预编译阶段,所有包含func字符的地方都将被func_rename替换,直到此宏定义无效,这种方法仅适用于将函数名替换,未替换前的函数名则无法调用。

2、alias属性重命名

通过C语言中的属性描述__attribute__在函数或数据声明中设置其alias属性

void func_rename(void) __attribute__ ((alias("func")));void func(void)
{... //函数体
}

这样就可以同时使用func或func_rename函数名调用func函数 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部