Re: [问题] 建议使用stdint.h吗?

楼主: ChampYen (网络黑猫)   2021-10-31 16:18:38
※ 引述《wei115 (社畜)》之铭言:
: 如题
: C99标准有stdint.h
: 里面定义了一些整数的确定大小,一定程度上保障可移植性
: 所以在我的理解中,使用int32_t会比使用int还要好
: 但我目前还没看过用stdint.h的专案
: 有些专案是有要求整数的大小是确定的,但也没用stdint.h,而是自己定义类型
: (ex. int32 uint32)
: 我猜过是太长懒的用(int比int32_t打起来顺手多了)
: 但他们宁愿用unsigned int也不用uint32_t,所以这个猜测也不对
: 最近要写一个8bit MCU的专案
: 我自己的习惯是想用stdint.h,int的长度会很明确
: 编译器有支援、不用合作、公司不怎么管Coding Style
: 这样建议用stdint.h吗?会有什么隐患吗?
: 感谢
这类 types 对于 C++ 是自 C++11 开始定义在 cstdint
由此可见这在软件开发有相当的需求与重要性
个人是站在建议这部份
主要原因是因为如果希望软件能正确同时运作在 32/64 bit
主要差异在 long / size_t / pointer 这数者会有不同
特别是很多人过去习惯 long / int 混用, 并做一些默认的检查
但这些者在 32bit / 64bit 架构下的宽度是不同的
推文中有人提到 "踩过雷" 就知道了
主要原因是很多时候工作是维护相关产品或是工具
让软件能编译后在不同环境上使用很重要
另外是这样做对于维护与移植上还是有帮助

Links booklink

Contact Us: admin [ a t ] ucptt.com