C++ 编译与链接过程

news2024/11/20 0:34:29

案例讲解

有 main.cpp 和 add.cpp 2个文件,add.cpp中实现add_func函数,main.cpp文件中需要使用add_func函数。

demo:

// main.cpp文件
#include <iostream>

int add_func(int a, int b);

int main() {
	int a = 10;
	int b = 10;
	int ret = add_func(a, b);
	std::cout << "结果是:" << ret << std::endl;
	return 0;
}
// add.cpp文件
int add_func(int a, int b) {
	return a + b;
}

在这里插入图片描述
编译时,main.cpp文件中add_func的函数声明是为了告知编译器,add_func函数已在工程其它地方定义了,编译器其实并不知道这个函数定义真实是否存在。如果main.cpp文件中没有该函数声明/定义,则编译报错。
在这里插入图片描述

链接阶段才会用add_func函数的符号去工程下匹配寻找该函数的定义。如果该工程下定义了多个相同的add_func函数,则链接报错。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1195985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

想学好Python,一定不能错过这些项目!整整70个,附带源码课件

在程序员的求职中&#xff0c;「项目经历」往往是最重要的一环&#xff0c;它能最直观地体现你的编程能力。对于在校生来说&#xff0c;一个好的「项目经历」甚至可以等同于工作经验。可以说&#xff0c;把项目经历写好了&#xff0c;求职就通过了一半。&#xff08;文末有教程…

内存取证分析

内存取证会临时存储一些有价值的信息 查看内存进程的信息等等&#xff0c;对溯源这种事情有帮助。不过要用到专门的工具获取信息 运行exe文件&#xff0c;输入y将一个系统的镜像完整的下载下来&#xff0c; 这就是保存下来的文件。 视频上别的工具搞不来&#xff0c;要不就是…

53. 最大子序和 392.判断子序列 115.不同的子序列 583. 两个字符串的删除操作 72. 编辑距离

53. 最大子序和 题目&#xff1a; 给定一个整数数组&#xff0c;求最大连续子序列和。&#xff08;至少包含一个元素&#xff09; 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大&#xff0c;为 6意为为了连续最大负数都可以包含进来。…

Vatee万腾数字化愿景:Vatee科技决策力引领数字化创新

在当今数字化时代&#xff0c;科技创新变得愈发不可或缺。创新是企业和个人在竞争激烈的市场中脱颖而出的关键要素&#xff0c;也是推动社会发展的引擎。Vatee万腾作为一家致力于数字化创新的公司&#xff0c;已经崭露头角&#xff0c;以其前沿的数字化策略和科技决策力&#x…

在家用Python搞副业,也能月入10000+

下班副业实现经济自由的时候&#xff0c;你还在床上躺着&#xff0c;天天摆烂吗&#xff1f;这样的生活真的是你想要的吗&#xff1f; 疫情在家接一些Python相关的小单子&#xff0c;既能给自己练手&#xff0c;还能赚是真香 从零基础开始真的一台电脑和一部手机就可以✅ 一次…

Oracle迁移(RAC变单机模式)

1.升级内核 systemctl stop firewalld systemctl disable firewalldrpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum --enablerepo"elrepo-kernel" list --showduplic…

【C++】STL的基本用法

目录结构 1. STL概念 1.2 常见容器 1.3 六大组件 2. STL容器之vector 1. vector 2. 基本用法示例 3. STL容器之map 1. map 2. 基本用法示例 1. STL概念 C中的STL是指标准模板库的缩写。STL提供了一组通用的模板类和函数&#xff0c;用于实现常见的数据结构和算法&…

Clickhouse学习笔记(3)—— Clickhouse表引擎

前言&#xff1a; 有关Clickhouse的前置知识详见&#xff1a; 1.ClickHouse的安装启动_clickhouse后台启动_THE WHY的博客-CSDN博客 2.ClickHouse目录结构_clickhouse 目录结构-CSDN博客 Cickhouse创建表时必须指定表引擎 表引擎&#xff08;即表的类型&#xff09;决定了&…

【MATLAB源码-第75期】基于模拟退火算法(SA)的栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 模拟退火算法是一种启发式优化算法&#xff0c;通常用于解决组合优化问题&#xff0c;例如旅行商问题和图着色问题。它模拟了固体材料在退火过程中逐渐冷却达到稳定状态的行为&#xff0c;以寻找问题的全局最优解。 以下是模…

【MATLAB源码-第76期】基于模拟退火算法(SA)的无人机三维地图路径规划,输出最短路径和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 模拟退火算法是一种启发式优化算法&#xff0c;通常用于解决组合优化问题&#xff0c;例如旅行商问题和图着色问题。它模拟了固体材料在退火过程中逐渐冷却达到稳定状态的行为&#xff0c;以寻找问题的全局最优解。 以下是模…

Unity 场景优化策略

Unity 场景优化策略 GPU instancing 使用GPU Instancing可以将多个网格相同、材质相同、材质属性可以不同的物体合并为一个批次&#xff0c;从而减少Draw Calls的次数。这可以提高性能和渲染效率。 GPU instancing可用于绘制在场景中多次出现的几何体&#xff0c;例如树木或…

软件工程的舞台上,《人月神话》的美学纷飞

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天给大家分享一本书&#xff1a;《人月神话》——软件工程的经典之作。 《人月神话》是一本具有深远影响力的软件工程著作&#xff0c;无论是软件开发者、管理者还是学习软件工程的人士&#xff0c;都能从中获得宝贵的启…

电脑想要微信多开——打开多个微信的必胜法宝!

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2023.11.11 Last edited: 2023.11.11 导读&#xff1a;在生活当中经常遇到工作和生活相撞的事情&#xff0c;导致在处理私人的事情同时不得不处理…

redis学习指南--概览篇

redis怎么学 官方学习网站&#xff1a; redis.cn 1、整体了解redis redis是一个内存数据库、kv数据库&#xff0c;数据结构数据库&#xff0c;redis中数据都是存储在redis中&#xff0c;可以通过key查找value&#xff0c;value可以有多种数据结构&#xff0c;有&#xff1a;…

牛客、赛码网OJ调试(全)

现在无论开发还是测试&#xff0c;面试的时候都需要考察代码能力。 从测试的职业发展来看&#xff0c;现在市场上对于纯功能测试的需求很少&#xff0c;招聘方均要求面试者一方面具备测试基础能力&#xff0c;也要求有点代码能力。 对于测试来说&#xff0c;除了测试开发&#…

C语言计算字符串中数字字符的个数

文章目录 1-9题前言例题10例题11答案例题10答案答案1答案2 例题11答案 1-9题 C语言基础例题1-3题-指针篇 C语言基础例题4-5题-二维数组篇 C语言基础例题6-7题-结构体篇 C语言基础例题8-9题-大作业篇 前言 下列题目需要学习字符串、指针后才可练习。 例题10 请编写一个程序…

【Java】I/O流—转换流、序列化流的初学者指南及RandomAccessFile类

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;我不在意你曾堕落&#xff0c;我只在意你是否会崛起 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录…

【算法与设计模式】

一、数据结构与算法 1、算法性能评估 时间复杂度、空间复杂度 2、数据结构 数组与列表 队列 堆栈 链表 二叉树 多叉树 递归算法 二、设计模式 1、单例 &#xff08;1&#xff09;GIL&#xff1a;线程互斥锁。保证同一时刻只有一个线程在进行。 &#xff08;2&#xff09…

嵌入式CTS测试

1.概述 CTS是一套开源测试套件&#xff0c;可以实现对OpenGL、ES、OpenCL、Vulkan的兼容性测试。OpenGL ES CTS的测试集&#xff0c;其测试用例涵盖了各种OpenGL ES 的功能和特性。这些功能包括着色器编译和链接、图元绘制、纹理操作、帧缓冲操作、深度测试、模板测试以及其他一…

中国智能驾驶的“突围赛”打响,这家本土厂商为何能成为“先行者”?

中国本土厂商正在成为全球智能汽车产业链的“核心力量”。 根据《高工智能汽车研究院》数据显示&#xff0c;今年1-6月&#xff0c;自主品牌标配L2&#xff08;含L2&#xff09;级辅助驾驶交付新车155.34万辆。其中&#xff0c;搭载中国本土智能驾驶解决方案提供商&#xff08…