试图理解这段c代码,但却无法得到它

时间:2017-11-16 11:33:04

标签: c pointers structure memory-address

我现在谷歌搜索了几个小时,以便解释下面的代码,但是找不到,欣赏是否有人可以帮助我。

我已经定义了内存位置(地址只是样本),

#define address (0x000001)

然后我有一个结构

typedef struct{
int a;
int c;
int f;
} foo;

和最后(这部分我无法弄清楚)我有像

这样的定义
#define foo__ ( (foo *) address)

这是否意味着我正在创建宏,我可以访问结构foo的元素,而foo结构从0x000001开始?

我知道代码可以运行 - 已经对它进行了测试但如果我无法理解它的作用就没用了。

编辑。很抱歉有关于问题的信息不清楚 - 是因为恩智浦的LPC微控制器用于嵌入式环境 - 应该首先告诉我 - 我的坏。

感谢您的回答和赞扬 - 我现在想出来了。

1 个答案:

答案 0 :(得分:3)

它会创建一个宏,这样如果您使用foo__,它将假设typedef'd struct的实例存在于(在此示例中)0x000001。< / p>

因此,如果实例存在,并且您可以访问它,那么您将能够相应地访问这些元素。但是,这里没有任何保护,您可以自行决定这是否合理且安全。