相关疑难解决方法(0)

C中数组索引的正确类型是什么?

应该使用C99中的数组索引的类型?它必须适用于LP32,ILP32,ILP64,LP64,LLP64等.它不一定是C89类型.

我找到了5位候选人:

  • size_t
  • ptrdiff_t
  • intptr_t/uintptr_t
  • int_fast*_t/uint_fast*_t
  • int_least*_t/uint_least*_t

有一个简单的代码可以更好地说明问题.什么是最好的类型i,并j在这两个特定的循环.如果有充分的理由,两种不同的类型也可以.

for (i=0; i<imax; i++) {
        do_something(a[i]);
}
/* jmin can be less than 0 */
for (j=jmin; j<jmax; j++) {
        do_something(a[j]);
}
Run Code Online (Sandbox Code Playgroud)

PS在问题的第一个版本中,我忘记了负面索引.

PPS我不打算编写C99编译器.但是编译器程序员的任何答案对我来说都是非常有价值的.

类似的问题:

c indexing types c99

40
推荐指数
5
解决办法
2万
查看次数

C#中的数组索引类型?

C#中的数组索引的类型是什么?

例如,在下面的代码中,索引是否会在访问数组元素(第三行)之前转换为int?

T[] myArray = new T[255];
byte index = 2;
T element = myArray[index];
Run Code Online (Sandbox Code Playgroud)

如果不是,使用'byte'类型的索引而不是'int'类型的索引访问数组元素会更快吗?

谢谢

c# arrays indexing int byte

11
推荐指数
1
解决办法
2958
查看次数

标签 统计

indexing ×2

arrays ×1

byte ×1

c ×1

c# ×1

c99 ×1

int ×1

types ×1