#Define带参数的整个函数调用?

Pum*_*Pie 2 c function call c-preprocessor

我有一个程序,我在两个不同的编译器上运行,每个编译器都有一个不同的文件处理库.例如,库需要:

fwrite(buffer,size,elements,file)
Run Code Online (Sandbox Code Playgroud)

而另一个是:

f_write(file,buffer,size,elements)
Run Code Online (Sandbox Code Playgroud)

无论如何我可以#define在我的主头文件中使用全局的#ifdef语句,这将允许我在编译器之间无缝转换?

dus*_*uff 7

当然:

#ifdef STUPID_COMPILER
# define fwrite(ptr, size, nitems, stream) f_write(stream, ptr, size, nitems)
#endif
Run Code Online (Sandbox Code Playgroud)

然后只需fwrite()在代码中使用- 不需要包装函数.f_write()如果您正在使用需要的编译器/库,预处理器会将其转换为调用.