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

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

专题分栏:C++

目录

一、域

1、分类

2、搜索顺序

二、编译链接

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

2、符号表

三、问题

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


一、域

1、分类

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

2、搜索顺序

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

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

二、编译链接

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

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

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

2、符号表

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

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

三、问题

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

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

相关推荐
蒙奇·D·路飞-1 小时前
OpenClaw:开源的《合金弹头》精神续作与终极本地部署指南
c++·开源·mfc
峥嵘life2 小时前
Android WiFi 热点 Channel 信道 和 Frequency 频率 转换总结
android·开发语言
小星星闪亮登场3 小时前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
wgego3 小时前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
梓䈑3 小时前
【用 Vibe Coding 实现的 C++17 在线判题系统】前端开发 + Web 自动化测试
前端·c++·ai编程
冻柠檬飞冰走茶3 小时前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
TunerT_TQ4 小时前
Valhalla 静态工程审阅 #018|MMCV 源码证据驱动评测【大厂开源基础设施特辑】
c++·开源·mfc·#计算机视觉·#商汤科技·#openmmlab·#静态源码审计
山峰哥4 小时前
数据库工程与SQL调优:从慢查询到秒级响应的实战之路
java·开发语言·数据库·sql·深度优先·启发式算法
wangjialelele4 小时前
Selenium4 + Java Web自动化测试入门指南:从环境搭建到常用操作详解
java·开发语言·前端·测试工具·自动化
Awna4 小时前
Golang 大小写可见性规范
开发语言·后端·golang