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

时间:2017-09-13 06:23:43

标签: c++ c-preprocessor arduino-due

我正在使用扩展数据库库对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声明。

有人可以解释一下这2个代码行是如何工作的吗?在Google上搜索我只获得了如何使用#define

定义常量和简单函数的条目

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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