C/C++ 入门(9)编译链接

个人主页:仍有未知等待探索-CSDN博客

专题分栏:C++

目录

一、域

1、分类

2、搜索顺序 

二、编译链接

1、代码在形成可执行文件的过程 

2、符号表

三、问题

1、带有缺省参数的函数声明和定义分离


一、域

1、分类

域:全局域、局部域、命名空间域、类域。

2、搜索顺序 

如果没有指定访问哪个域的话:1、局部域 2、全局域。

              指定访问哪个域的话:直接去指定的域内访问。

二、编译链接

1、代码在形成可执行文件的过程 

  • 预处理:展开头文件、宏替换、条件编译、去掉注释
  • 编译:检查语法->生成汇编代码
  • 汇编:把汇编代码转成二进制机器码
  • 链接:将文件合并到一起,并且根据函数名去其他文件中寻找函数地址

stack.s有函数的地址(定义),test.s没有函数的地址(声明)->分离。 

2、符号表

编译器会生成一个叫做“符号表”的数据结构来维护变量名和内存地址直接的对应关系。它会搜集变量名,根据符号表找到变量的真正的物理位置,进行相关操作。 在机器执行程序的时候,会把变量名替换为内存地址(和长度),而不存在任何名称。

符号表:函数名和对应函数地址的表。

三、问题

1、带有缺省参数的函数声明和定义分离

缺省参数只写在函数声明的时候。

相关推荐

  1. C项目编译[CL]

    2024-04-30 11:54:02       49 阅读
  2. 编译

    2024-04-30 11:54:02       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 11:54:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 11:54:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 11:54:02       87 阅读
  4. Python语言-面向对象

    2024-04-30 11:54:02       96 阅读

热门阅读

  1. 基于ARM深入分析C程序

    2024-04-30 11:54:02       38 阅读
  2. 【wu-framework-parent】 1.2.5-JDK7 发布

    2024-04-30 11:54:02       35 阅读
  3. Django orm高级用法以及查询优化

    2024-04-30 11:54:02       29 阅读
  4. node服务器——处理原始的请求流

    2024-04-30 11:54:02       35 阅读
  5. UNIXRTC

    2024-04-30 11:54:02       25 阅读
  6. 基于SpringBoot的企业客户管理系统源码数据库

    2024-04-30 11:54:02       30 阅读
  7. 4- 29

    4- 29

    2024-04-30 11:54:02      33 阅读
  8. Python 连接 Oracle 数据库加入超时处理机制

    2024-04-30 11:54:02       21 阅读
  9. 字符串分割成List的几种方式

    2024-04-30 11:54:02       29 阅读
  10. Managing Digital Design and Web Development MANG6531

    2024-04-30 11:54:02       27 阅读