char类型移动跨平台踩过的坑
清泛原创
- char强转int时,发现在x86平台下是按照有符号处理的,但是在ARM32下被当成了无符号导致问题,ARM64正常有符号。
- 经调查,在PC上,char类型默认为signed-char,但是在一些嵌入式设备上,比如arm平台,char类型是当作unsigned char处理的,为了保持与PC一致,可以通过指定
CFLAG += fsigned-char
进行配置可完美解决。 - 因此,跨平台程序时要特别注意char和unsigned char,最好使用unsigned char。
- 拓展:https://www.cnblogs.com/lsgxeva/p/10913024.html
上一篇:std::stringstream ss; 直接使用ss.str().c_str() 字符串指针可能导致崩溃
下一篇:c++11右值引用、std::move移动语义、std::forward完美转发的一些总结