c – 为小循环计数器选择什么数字类型?

考虑到int在内存中占用4个字节.

了解我正在寻找的例子:

对于(x = 0; x <10; x)
//做一点事

在这个指示下,我知道x的值小于11,

我看到很多代码,大多数人声称x像一个int,

为什么我们不应该或为什么大多数人不像一个短的,甚至像一个char一样声明x?

我以为在原因中我发现这个解释,例如:

短s = 5;

s在内存中占用2个字节,我所知道的是,编译器考虑5像一个int
所以要放5到s,5应该转换成正确的!

– >所以这个指令需要更少的内存,但是更多的工作

int i = 5;

这里我拿4个字节,但不需要交谈(5是一个int)

– >所以这个指令做的不多,但需要更多的记忆

是我所想的一些原因!

我希望我的问题是清楚的

解决方法

如果你必须在内存中存储数百万个数字,并且每个数字可能在0到11之间,那么你会关心内存.在一个循环中,变量最有可能存储在一个cpu寄存器中,这意味着它是例如x86上的32位,x86_64等等的32位到64位.所有“较小的”整数将被零扩展到32位或64位.

int是简单易读的,很多人使用它.但是,如果您必须担心性能提示编译器关于大小限制,请使用“(u)int_fast_ *”类型(即uint_fast8_t).

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...