![]() |
1
12
C99增加了所谓的“最快”最小宽度整数类型来解决这个问题。对于您感兴趣的范围,类型将是
请记住,可能没有性能提升(内存消耗的增加甚至会使事情变慢);和往常一样,基准测试!不要过早地或仅仅根据可能存在缺陷的假设来优化应该工作的内容。 |
![]() |
2
6
好吧,第一个问题是,C标准没有定义
除此之外,一般来说
注意,操作数小于
|
![]() |
3
3
我能想到的另一个缺点是(据我所知)“现代”处理器用“全”整数(通常是32位)来做所有的数学运算。所以处理一个
使用
|
![]() |
4
3
字符上的算术几乎肯定会使用与整数上的算术相同的寄存器来执行。例如:
加法用vc++编译为以下内容:
其中eax是32位寄存器。 因此,在算术性能方面,使用chars比ints没有优势。 |
![]() |
5
2
在内部,处理器通常对机器字执行算术运算。这意味着,当对其他类型进行计算时,尽管计算本身需要相同的时间长度,但根据可用的指令集,可能需要做额外的工作来读取输入并将计算结果强制转换为目标类型(例如,符号扩展/零填充、移位/屏蔽以避免未对齐的MEM)。ORY通道等)。
这就是C定义类型和操作的原因-大小
使用的正当理由
|
![]() |
6
0
我将看到的主要问题是,您的代码使用的类型对于表示其他内容的值来说意味着一件事——例如,存在语义问题,这可能是维护问题。如果你这么做了,我可能会建议你把它改成typedefing:
这样,a)你做的事情更清楚,b)如果你遇到麻烦,你可以很容易地改变它(例如,只有一个地方)。
你有没有
很好的理由
不使用
|
![]() |
davidzxc574 · 将字符串缩放为字符 2 年前 |
![]() |
mbilyanov · 比较C中动态分配的字符串 3 年前 |
![]() |
Htin Aung Lu · 如何用条件[Python]替换所有字符 3 年前 |
![]() |
Prago · 如何检查用户输入是否为单个字符 3 年前 |
![]() |
Kyle Thompson · 来自字符数组的奇怪行为 3 年前 |
![]() |
Henry Villa · 如何将数字转换为字符数? 3 年前 |
![]() |
maya · 为什么我不能在新字符串中添加字符? 3 年前 |
![]() |
pbbb · 在C中实现strcat时的奇怪行为 3 年前 |