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
语句,这将允许我在编译器之间无缝转换?
当然:
#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()
如果您正在使用需要的编译器/库,预处理器会将其转换为调用.