这个宏定义了什么?

前端之家收集整理的这篇文章主要介绍了这个宏定义了什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我读了这块宏(C代码),并在解码它时感到困惑,知道它定义了什么.它定义了什么?
#define sram (*((unsigned char (*)[1]) 0))

-广告

解决方法

我认为sram是“开始RAM”.
unsigned char[1]

1个无符号字符的数组.

unsigned char(*)[1]

大小为1的无符号字符的pointer to an array.

(unsigned char (*)[1]) 0

将0转换为指向无符号字符大小1的数组的指针.

*((unsigned char (*)[1]) 0)

在位置0读取一些内存,并将结果解释为无符号字符大小1的数组.

(*((unsigned char (*)[1]) 0))

avoid 1+5*8+1==42.

#define sram (*((unsigned char (*)[1]) 0))

将变量sram定义为从位置0开始的内存,并将结果解释为无符号字符大小为1的数组.

原文链接:https://www.f2er.com/c/111228.html

猜你在找的C&C++相关文章