c – std :: map实现在linux和windows之间有所不同
发布时间:2020-12-13 19:02:42 所属栏目:Linux 来源:网络整理
导读:在linux和Visual Studio 2015中编译后,以下代码的行为有所不同. #include Visual Studio中的结果: key: 0 value: 0key: 1 value: 1 在linux中使用g -std = c 11 -Wall -pedantic编译的结果 key: 0 value: 1key: 1 value: 2 我有两个问题: 据我了解c,VS实现
在linux和Visual Studio 2015中编译后,以下代码的行为有所不同.
Visual Studio中的结果:
在linux中使用g -std = c 11 -Wall -pedantic编译的结果
我有两个问题: >据我了解c,VS实现是正确的.
然后它在两个平台上都像Visual Studio一样. 2.我可以使用哪些Visual Studio编译器设置来确保VS的编译方式与Linux相同? 最佳答案
扩展到
C不保证是否首先调用operator []或size,因为它们都是赋值表达式的操作数.两个编译器都是正确的. 如果您期望一种行为或另一种行为,则应将表达式拆分为两个语句. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |