c++语法知识

天王盖地虎626 发布于 08/04 21:07
阅读 238
收藏 0

下面这行代码,标红的地方[32-7]表示啥意思啊?

#ifdef __LP64__ uint64_t reserved[32-7];

#else

uint32_t reserved[32-7];

#endif

加载中
0
开源中国首席C菜鸟
开源中国首席C菜鸟
数组啊 大小25个元素
0
newzai
newzai
就是32-7而已
0
tcxu
tcxu

这句代码的作用:
如果 __LP64__ 已被定义过,则声明(创建)一个 uint64_t 数据类型的数组 reserved[ 25 ], 否则,声明(创建)一个 uint32_t 数据类型的数组 reserved[ 25 ]。
正如楼上各位所说,[32-7] 就是 [ 25 ], reserved[32-7] 就是指创建一个 大小25个元素的数组 reserved。

#include <stdio.h>
int main(){
	int a[5]={1,2,3,4,5};
	printf("%d\n", a[37-34]);
	return 0;
}

输出:4

至于 unit32_t 或 unit64_t 代表什么数据类型,可参考 : uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型(转)

0
天王盖地虎626
天王盖地虎626

引用来自“tcxu”的评论

这句代码的作用:
如果 __LP64__ 已被定义过,则声明(创建)一个 uint64_t 数据类型的数组 reserved[ 25 ], 否则,声明(创建)一个 uint32_t 数据类型的数组 reserved[ 25 ]。
正如楼上各位所说,[32-7] 就是 [ 25 ], reserved[32-7] 就是指创建一个 大小25个元素的数组 reserved。

#include <stdio.h>
int main(){
	int a[5]={1,2,3,4,5};
	printf("%d\n", a[37-34]);
	return 0;
}

输出:4

至于 unit32_t 或 unit64_t 代表什么数据类型,可参考 : uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型(转)

那为什么不直接写25呢?

tcxu
tcxu
32、7,均与这套代码对应的场景, 如数组 reserved 的用处,有关。
返回顶部
顶部