我已经在谷歌上搜索了几个小时来寻找以下代码的解释,但只是找不到,感谢有人可以帮助我。
我已经定义了内存位置(地址只是示例),
#define address (0x000001)
然后我有一个结构
typedef struct{
int a;
int c;
int f;
} foo;
最后(这部分我无法弄清楚)我有这样的定义
#define foo__ ( (foo *) address)
这是否意味着我正在创建宏,从而可以访问结构 foo
的元素,并且 foo
结构从 0x000001 开始?
我知道代码可以工作 - 已经对其进行了测试,但如果我无法理解它的作用,则没有任何用处。
编辑。抱歉,有关问题的信息不清楚 - 是的,NXP 的 LPC 微 Controller 用于嵌入式环境 - 首先应该告诉你这一点 - 我的错。
感谢您的回答和赞扬 - 我现在明白了。
最佳答案
它创建一个宏,这样如果您使用 foo__
,它将假定该 typedef'd
struct
的实例存在于 (在此示例中)0x000001
。
因此,如果某个实例确实存在,并且您可以访问它,那么您将能够相应地访问这些元素。但是,这里没有任何保护,实际上由您决定尝试这样做是否明智且安全。
关于c - 试图理解这段c代码但就是无法理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47328604/