已经阅读了这个相关问题,但是想要更具体的解答。 有没有一种方法可以明确告诉编译器你希望枚举的宽度是多少? 如果有的话,你怎么做呢?我知道在C#中如何指定,那在C语言中是否也是这样做的呢? 这样做是否值得?当枚举值传递给一个函数时,它会被作为一个整型值传递吗?
我如何确定我的CPU的字长?如果我理解正确,int应该是一个字长对吧?但我不确定自己是否正确。 所以,只需打印sizeof(int)就足以确定处理器的字长了吗?
简单来说,对于 C 和其变体(不像 Java 那样使用虚拟机),原始数据类型在不同目标上的大小可以差异很大,并且只有在使用 stdint.h 中定义的固定宽度类型时才能保证,即使如此,你的实现也必须支持它们。 假设(因为在大多数现代计算机中一个字节是八位,用于网络目的我假设是 ASCII),...
在20世纪80年代从16位到32位的转变中,int 的大小要么是16位,要么是32位。使用当前的64位过渡命名规则,我了解到ILP32和LP32机器的分布相当均匀。当时人们普遍认为,在任何给定的体系结构中,int 都将遵循寄存器或指针宽度,并且 long 仍然保持32位。 快进25年,我看到L...
我经常看到像这样的程序,其中在32位平台上,Int64是一个绝对的性能杀手。我的问题是: 如果我需要特定的字长来完成任务(在我的情况下是RNG),Int64在64位平台上是否有效或者它仍然使用C调用?将Int64转换为 Int 有多高效?