uint32_t 和 uint64_t 混用,超出uint32_t的范围,结果导致计算错误。。。
#define INNER_TANK_NODE_INFO_LEN 8192
sata_node_info_num_ = chunk_num_ + big_chunk_num_;
chunk_base_addr_size_ = sata_node_info_num_ * INNER_TANK_NODE_INFO_LEN;
cerr << "chunk_base_addr_size_: " << chunk_base_addr_size_<< endl;
cerr << "sata_node_info_num : " << sata_node_info_num_ << endl;
3479186∗8192
博客讲述了在编程中uint32_t和uint64_t混合使用时,未进行类型转换可能导致的计算错误。例如,3479186乘以8192的结果28501491712超过了uint32_t的最大表示范围,强调了类型强制转换的重要性。
最低0.47元/天 解锁文章
3916

被折叠的 条评论
为什么被折叠?



