博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gcc 源代码分析-前端篇3
阅读量:4603 次
发布时间:2019-06-09

本文共 742 字,大约阅读时间需要 2 分钟。

3. GCC怎样函表示一个函数
  对c语言来说。函数是其核心,全部的东西都在环绕着函数在转。对于一个函数来说。它基本的一些特性例如以下:
 
 1. 有一个返回值,在这里我们没有把返回值的函数觉得它的返回值是void;
 2. 它有传入的參数。而这个參数个数不确定。可多可少,也能够没有;
 3. 它有一个函数名称,这个名称具有唯一性,也就是同一个project,不能有名称一样的多个函数。
 4. 它有函数运行体;
 对于函数来说,还是通过struct tree_decl结构来表示:
 filename:函数所在文件名称。
 linenum: 函数所在的行号。
 print_name: 函数名称,asii 表示;
 assembler_name: 函数名的内部名称,asii表示;
 name:    函数的名字。用一个struct tree_identifier结构来表示;
 common::type 表示函数类型,这个实际上是一个tree_type的结构来表示。它的common::type表示函数的返回类型
              它实际上就是在初始化时生成的表示数据类型的节点,假设是int型。它就是一个int 型节点;
              它的values 成员记录的是函数的參数。是一个struct tree_int_cst类型,通过它的chain把几个參数串连起来。
 对于这种一个源码:
 void main()
 {
   
   
 }
 它最后转成一棵语法树,可是这个树仅仅有一个节点,就是表示函数的节点,它实际上是一个struct tree_decl结构。它的name成员表示
 函数的名称,type 成员里面既记录了函数返回值。也记录了函数的參数。

转载于:https://www.cnblogs.com/zsychanpin/p/6979335.html

你可能感兴趣的文章
struts2 入门
查看>>
.net 编译原理
查看>>
mean 快速开发和现有技术的对比分析
查看>>
Metro Style app :浏览器扩展
查看>>
linux的kernel是怎样工作的(TI_DM36X_ARM系统)(1)
查看>>
[luogu4310] 绝世好题 (递推)
查看>>
[luogu3203 HNOI2010] 弹飞绵羊 (分块)
查看>>
-Dmaven.multiModuleProjectDirectory system propery is not set.
查看>>
Python2 unichr() 函数
查看>>
Python 字典 copy()方法
查看>>
Minimum Path Sum
查看>>
Remove Duplicates from Sorted Array II
查看>>
常量指针和指针常量巧妙记忆方法[转]
查看>>
python-haproxy作业讲解视频总结
查看>>
批处理文件脚本总结
查看>>
快速排序C++代码
查看>>
mui搜索框 搜索点击事件
查看>>
bzoj 5289: [Hnoi2018]排列
查看>>
joomla处境堪忧
查看>>
Jquery-AJAX
查看>>