小编Ban*_*ami的帖子

为什么C提供的整数类型基本上不适合任何项目?

我更像是一个系统管理员而不是一个程序员.但是,我花了大量时间在程序员的代码中徘徊,试图弄清楚出了什么问题.和一个令人不安的量时间是花在处理问题时,程序员预期__u_ll_int32_t或什么(是的,我知道这不是真正的)的一个定义,但无论是预期的定义该类型文件的某处其他比它,或(这是更糟糕的,但幸运的是,很少见)预期该定义的语义不是它的东西.

据我了解C,它故意不作整数类型的宽度定义(并认为这是一件好事),而是为程序员提供了char,short,int,long,和long long,在他们所有的符号和无符号的荣耀,与定义最小值该实施(希望)满足.此外,它提供了实现必须提供要告诉你像一个字符,最大的无符号长等优点的宽度然而第一件事任何不平凡的C++项目似乎做的事情程序员不同的宏被导入或发明另一组类型,它们明确地给出了8,16,32和64位整数.这意味着,作为系统管理员,我必须在编程需要一个地方的定义文件(也就是,毕竟是我的工作),但当时并不是所有的所有这些定义的语义是相同的(这轮已多次重新发明)并且我不知道在这里满足所有用户需求的非临时方式.(我有时会使用<bits/types_for_ralph.h>,我知道每次我都会让小狗哭泣.)

试图明确地定义数字的位宽(用一种特别不想这样做的语言)会让程序员感到头疼吗?为什么不知道定义的最小值和平台提供的MAX/MIN宏足以完成C程序员想要做的事情?你为什么要选择一种语言,它的主要优点是它可以在任意比特的平台上移植,然后自己输入特定的比特宽度?

c types integer

7
推荐指数
1
解决办法
722
查看次数

标签 统计

c ×1

integer ×1

types ×1