跨平台代码编写注意事项

本文介绍了跨平台代码编写时的注意事项,包括头文件包含、使用标准库、容器嵌套格式、文件名大小写敏感性、符号使用、函数参数引用、预编译头、命名空间、模板使用等方面,旨在确保代码在Windows和Linux下的兼容性。
摘要由CSDN通过智能技术生成

为了减少代码跨平台移植工作量,在windows或Linux下进行代码编写时整理了以下注意事项。

说明:以下所说的在linux平台下,都是只通过g++或gcc来编译,所说的编译问题,对于高版本的编译器是可以编译通过,以下规范只针对通常情况或为了更好的兼容性。

1.头文件包含

如果头文件的父级目录有明显区分的名称,不是直接在"include"目录下,包含头文件不要直接只写头文件本身,父目录需要带上。

例如

头文件"a.h"在目录"dir1/dir2/a.h",包含头文件时至少包含到"dir2/a.h"

不这样做的缺点

移植时配置包含路径时会需要写很多项包含路径。

2.使用标准库最好加上std

使用标准库最好加上std,如果cpp或头文件中使用了标准库,但未加std,在文件头部需要加上using namespace std。

不这样做的缺点

移植过程会导致很多编译不过,需要在文件头部加using namespace std或在使用标准库类或函数前加std。

3.容器嵌套右侧需要加空格

容器嵌套的,右侧需要加空格。

例如

 std::map<std::vector<int> >

不这样做的缺点

对于高版本的编译器来说不加空格可能会编译通过,对于低版本的就无法编译通过。为了更好的兼容性,最好加上空格。

4.include时注意文件名称大小写

包含时注意文件名称大小写,与实际文件名称需保持一致。

不这样做的缺点

linux平台下包含头文件的名称时区分大小写的,包含路径中的名称与实际不一致时无法编译通过。

5.包含头文件杜绝使用符号“\”

包含头文件有多级路径时,斜杠应该使用“/”。

不这样做的缺点

linux平台无法识别符号“\”。

6.函数接口参数是引用时,不要直接传入构造参数

函数接口参数是引用时,不要直接传入构造参数,需要另外定义一个l临时变量再传进去。

例如

#函数定义
void function(const std::string &am
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值