2

我正在使用扩展数据库库在 Arduino Due 上编程,并在示例中遇到以下行。

EDB_Status result = db.updateRec(1, EDB_REC logEvent);

我不明白这EDB_REC logEvent部分。EDB_REC 是做什么的?(logEvent 只是一个结构)所以我去了 EDB_REC 的实现并得到:

#define EDB_REC (byte*)(void*)&

这让我更加困惑,因为我从未见过这样的#define 声明。

有人可以解释一下这两条代码行是如何工作的吗?在谷歌上搜索我只得到关于如何使用#define 定义常量和简单函数的条目

谢谢!

4

1 回答 1

1

请记住,在编译器解析器开始解析代码之前,宏只是作为一个单独的步骤在源代码中被替换。

这意味着db.updateRec(1, EDB_REC logEvent);编译器解析器将在宏扩展之后将其视为db.updateRec(1, (byte*)(void*)& logEvent);

于 2017-09-13T06:25:40.510 回答