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

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

专题分栏:C++

目录

一、域

1、分类

2、搜索顺序

二、编译链接

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

2、符号表

三、问题

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


一、域

1、分类

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

2、搜索顺序

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

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

二、编译链接

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

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

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

2、符号表

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

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

三、问题

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

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

相关推荐
啊森要自信18 分钟前
【GUI自动化测试】控件、鼠标键盘操作与多场景自动化
c语言·开发语言·python·adb·ipython
花北城26 分钟前
【C#】ABP框架服务端开发
开发语言·c#·abp
电商API_1800790524731 分钟前
Python 实现闲鱼商品列表批量采集,接口异常重试机制搭建
大数据·开发语言·数据库·爬虫·python
DogDaoDao33 分钟前
深入理解 Qt:从原理到实战的全景指南
开发语言·qt·程序员
放下华子我只抽RuiKe538 分钟前
FastAPI 全栈后端(四):认证与授权
开发语言·前端·javascript·python·深度学习·react.js·fastapi
我是唐青枫1 小时前
Java Spring Data JPA 实战指南:Repository 查询、分页与实体映射
java·开发语言
张忠琳1 小时前
【Go 1.26.4】(Part 2) Go 1.26.4 超深度分析 — Runtime GMP 调度器 (proc.go + runtime2.go)
开发语言·golang
阿坤带你走近大数据2 小时前
java中泛型不能用基础数据类型
java·开发语言
weixin_307779132 小时前
从脚本执行到智能体协作:AI辅助测试能力的范式重构
运维·开发语言·人工智能·算法·测试用例
云絮.2 小时前
增删改查操作
java·开发语言