1. 何为跨平台?
一份代码,在Windows上可以编译、运行,在Linux上也可以编译和运行,则称此代码是可以跨平台的。
2. 特点
1)同一份代码,无需改动
2)运行结果相同
3. 跨平台代码的要求
1)尽量使用标准函数/类型/语法
如,ANSI C/STL,是各个平台都支持的函数;
char/short/int/double/float,这些类型各平台都支持。
2)尽量避免平台相关的类型、函数、语法
如,有的编译器认为这样是变量i重复定义
for(int i = 0; i < 2; i++){}
for(int i = 0; i < 10; i++){}
如,用fopen/fclose/fread/fwrite来对文件进行操作,不用open/close/read/write来操作文件。
4. 跨平台的封装
以popen/pclose为例,在Linux下,支持popen/pclose ,在Windows下,支持_popen/_pclose,如何做到代码上的统一?
使用如下条件编译,
#ifdef _WIN32
//Windows下的操作
#else
//Linux下的操作
#endif