gcc研究笔记(一)tree是什么

本文主要探讨了GCC编译器中广泛使用的tree结构,它构成了抽象语法树的基础。tree本质上是一个指向tree_node联合体的指针,根据USED_FOR_TARGET宏的定义有不同的表示形式。在union tree_node中详细列举了各种类型的树节点,如int_cst、real_cst、decl_minimal等,这些节点包含了编译过程中涉及的各种信息。
摘要由CSDN通过智能技术生成
         在gcc中,几乎所有的东西都是用树结构串起来的,从而形成抽象语法树。tree可以看作是指向树节点的指针,所有的树节点都有一个共同的基类:tree_common。
在文件coretypes.h中,tree的定义如下:
#ifndef USED_FOR_TARGET
...
typedef union tree_node *tree;
...
#else
...
#define tree union _dont_use_tree_here_ *
...
#endif
可见,当 USED_FOR_TARGET宏未被定义的时候,tree是指向联合类型 tree_node的指针类型;否则,tree是一个定义为 union _dont_use_tree_here_ *的宏。
在tree.h中,可以找到union tree_node的定义:
union tree_node
{
 struct tree_common common;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值