说我有一个正在制作的库,我想调用函数rename
或puts
,如何保留rename
或puts
等中的原始stdlib
和stdio
,以及其他,还有我自己的功能是puts
吗?
#include <stdio.h>
alias puts original_puts;
void
puts(char *c) {
original_puts(c);
}
我如何完成达到此目的的事情?
您不能为库函数起别名,但可以使用预处理程序指令为自己的库起别名。
例如:
mylib.h:
#include <stdio.h>
void my_puts(char *c);
#define puts(...) my_puts(__VA_ARGS__)
mylib.c:
#undef puts
void my_puts(char *c)
{
puts(c);
}
#define puts(...) my_puts(__VA_ARGS__)