如何在Arduino中进行结构的前向声明
How to make forward declaration of a struct in Arduino?
想象一下这个高度人为的例子:(注意这是针对arduino风格的C,而不是ANSI C):
typedef struct _node {
int value;
struct _node *next;
} node;
使用这个,我可以通过"向后"构建列表来构建两个节点的链表:
node nodeB = { 2, (node *)0 }; // end of list
node nodeA = { 1, &nodeB }; // A.next => B
但是,如果我想做一个循环链表呢?这行不通:
node nodeA = { 1, &nodeB };
node nodeB = { 2, &nodeA };
,因为nodeB在nodeA想要引用它的时候没有被声明。
我可以在运行时构建链表(动态分配节点,然后设置next
链接)。但是是否有一种方法可以在编译时获得有效的前向声明?
这看起来是一个相当普通的情况,向前声明将工作:
extern node nodeB;
node nodeA = { 1, &nodeB };
node nodeB = { 2, &nodeA };
相关文章:
- 为什么 C++ 中的以下结构声明会导致退出 127?
- 在.cpp文件之间传递结构声明,而不使用全局头文件
- 结构声明中的 if 语句C++
- 这个嵌套结构声明是什么意思?
- 在结构声明的分号之前声明的结构变量是否为全局变量
- 为什么结构声明在C++中违反了 ODR
- 错误:多个文件中的结构声明冲突
- 为什么调用定义的构造函数会导致结构声明中出现错误,我该如何修复它
- C++数据结构声明
- 相互依赖的结构声明
- 结构声明的数组
- 结构声明中的":"是什么意思
- 面向C++的main.cpp中的可视化结构声明问题
- 当某些结构字段被省略或与结构声明中的顺序不同时,如何实现正确的解析?
- 编译器在转发结构声明上出错
- C++生成器 XE4 中的结构声明
- 我无法理解c ++中的结构声明
- 嵌套结构声明以及如何访问它们
- 将包含单个数组的结构声明为packed有什么缺点吗
- 定义之前的结构声明