类型定义常量长度的数组

typedef array of constant length

本文关键字:数组 定义 常量 类型      更新时间:2023-10-16

这是做什么,怎么做?

typedef int map_t [1<<MAX];

这行是做什么的?

假设MAX是编译时已知的常量,则此代码:

typedef int map_t [1<<MAX];
map_t x;

与下面的代码相同:

int x[1 << MAX];

假设MAX定义为8:

typedef int map_t[1<<MAX];

相同
typedef int map_t[256];

因为1 << 8 = 256。它表示将数字18中的位向左移动18次,如下所示:

1是二进制

0000 0010,也就是十进制的2

8班后:

1 0000 0000,也就是256的十进制

这里没有位掩码,只是简单地写

typedef int map_t[pow(2,MAX)];

我没怎么用过C,但是上面的代码应该可以编译,对吧?

编辑:上面没有编译,但如果我们动态分配它应该工作。