跨平台的编译

一般的跨平台编译:

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;
}


你可能感兴趣的:(Coding)