一般的跨平台编译:
FILE* tmpfile( void) {
#ifndef _WIN32
returntmpfile();
#else
//code for Windows;
#endif
}
可是,这样实现很不好,会发现名字冲突,因为这样一来这个函数太难看了。于是重构了一下代码——写一个自己实现的tmpfile() – w32_tmpfile,然后,在Windows 下用宏定义来重命名这个函数为tmpfile()。这种用法是比较标准的跨平台代码的写法。
#ifdef _WIN32
#define tmpfile w32_tmpfile
#endif
FILE* w32_tmpfile ( void) {
//code for Windows;
}