zoukankan      html  css  js  c++  java
  • gcc 源代码分析-前端篇3

    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 成员里面既记录了函数返回值。也记录了函数的參数。
  • 相关阅读:
    loadrunner提高篇
    loadrunner提高篇
    loadrunner提高篇
    STM32F4XX高效驱动篇1-UART
    系统封装接口层 cmsis_os
    uCGUI 按键窗口切换机制
    xming+xshell让linux变成桌面化操作
    jmeter做WebSocket请求解读
    性能监控工具spotlight操作
    linux性能监控命令,磁盘,网络,cpu,内存
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6979335.html
Copyright © 2011-2022 走看看