Linux期末复习——C编程基础

news2025/7/28 0:45:03

Linux下C语言编译环境概述

        编译器:VI

        编译器:GCC

        调试器:GDB

        项目管理器:make

vi编辑器

       三种模式 

        命令行模式:默认模式,不可以编辑,只可以上下移动光标“整行删除,删除字符”,“复制”,“粘贴”

        插入模式:只有在该模式下用户才可以文字编辑输入,esc返回命令行模式

        底行模式: 这个模式光标在底部,用户可以保存文件和退出,也可以设置编辑环境

        vi工作流程

  1. 在命令行输入 vi 文件名,进入默认模式
  2. 输入i(在光标当前位置插入),进入插入模式,esc返回命令行模式
  3. 输入:wq进入底行模式                                          

        

vi命令行模式部分功能键
i插入位置为光标位置
a插入位置为光标下一位置
o插入位置为光标下一行
/name光标后查找name字符串
?name光标签查找name字符串
x删除所在位置一个字符
X删除所在位置前一个字符
yy复制光标所在行
nyy复制光标所在行下n行

        gcc编译器

                编译流程(四个步骤):

                预处理阶段:对头文件和宏定义进行处理

                  gcc -E 文件名.c -o 文件名.i

                编译阶段:检查规范性,是否有错误,生成汇编代码

                gcc -S 文件名.i -o 文件名.s

                汇编阶段:把编译阶段生成的代码转换成目标文件

                gcc -c 文件名.s -o 文件名.c

                链接阶段:生成可执行文件

                gcc 文件名.c -o 文件名 

                库函数: 

                分为静态库和动态库

                静态库:编译链接的时候,将库文件代码全部加入可执行程序【生成的文件较大,运行就不需要库文件了】

                静态库:程序执行的时候才加载库【节省系统开销】

gdb调试器

        使用流程:

        1.gcc -g test.c -o test,使用gcc编译器编译程序,加上-g,让编译的代码中包含调试信息

        2.gbd 可执行文件名,使用gdb调试可执行文件

        3.键入l,查看所载入的文件,列出的代码给出了具体行号

        4.键入b 行号,设置断点

        5.键入info b,查看断点情况

        6.在断点键入bt,查看调用函数(堆栈)的情况

        7.键入r,执行程序到断点

        8.在断点处键入p 变量名,查看断点处相关变量值

        9.单步运行:n(next 不进入断点处函数)和s(step 执行完断点处函数)

        10.键入n,恢复程序运行

make工程管理器

        用于管理较多文件,根据时间戳减少编译工作量,通过makefile文件执行大量编译工作。

        makefile基本结构

                目标体:创建目标体所依赖文件

                        具体指令(这一行必须tab开头)

        makefile变量

        简化了makefile维护工作量

        常见预定义变量的作用:简化工作量

       makefile规则

         高效,为什么?简化了makefile操作,像批处理一样

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

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

相关文章

【C++】多态 ⑨ ( vptr 指针初始化问题 | 构造函数 中 调用 虚函数 - 没有多态效果 )

文章目录 一、vptr 指针初始化问题1、vptr 指针与虚函数表2、vptr 指针初始化时机3、构造函数 中 调用 虚函数 - 没有多态效果4、代码示例 构造函数 的 作用就是 创建对象 , 构造函数 最后 一行代码 执行完成 , 才意味着 对象构建完成 , 对象构建完成后 , 才会将 vptr 指针 指向…

前端面试 面试多起来了

就在昨天 10.17 号,同时收到了三个同学面试的消息。他们的基本情况都是双非院校本科、没有实习经历、不会消息中间件和 Spring Cloud 微服务,做的都是单体项目。但他们投递简历还算积极,从今年 9 月初就开始投递简历了,到现在也有一个多月了。 来看看,这些消息。 为…

自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮

自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮 自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮 <template><div class"box"><el-table :data"msgMapList" border class"table">&l…

药明合联港股IPO,能否撑起生物偶联药物市场的新希望?

据港交所10月29日披露&#xff0c;药明合联生物技术有限公司(简称&#xff1a;药明合联)通过港交所主板上市聆讯&#xff0c;大摩、小摩、高盛为其联席保荐人。 此消息公布后&#xff0c;进一步点燃了市场药明生物的热情&#xff0c;29-30日药明生物收获两根大阳线&#xff0c…

Linux————内置命令大全

&#xff08;一&#xff09;内置命令 Shell 内置命令&#xff0c;就是由 Bash Shell 自身提供的命令&#xff0c;而不是文件系统中的可执行脚本文件。内置命令的执行速度通常优于外部命令&#xff0c;因为执行外部命令不仅会导致磁盘I/O操作&#xff0c;而且还需要为其fork一个…

Rand-RCCA安全接收者匿名

只是学习过程记录供参考,SPHF部分未完 论文&#xff1a;Receiver-anonymity in rerandomizable RCCA-secure cryptosystems resolved(CRYPTO 2021) SPHF论文参考&#xff1a; A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack…

SQLITE3 函数接口

简述 sqlite3 接口的核心元素: 两大对象&#xff0c;八大函数&#xff1b; 其中两个对象指的是: sqlite3 数据库连接对象 数据库的连接句柄(数据库的文件描述符) 代表你打开的那个 sqlite3 的数据库文件,后序对数据库的操作都需要用到这个对象 sqlite3_stmt SQL 语句对象…

android中的Package安装、卸载、更新替换流程

android系统在安装&#xff0c;删除&#xff0c;替换&#xff0c;清除数据等与应用相关的动作时&#xff0c;会发出对应的Broadcast&#xff0c;上层的应用通过注册相应的广播事件来做相应的处理。 官方文档中给出了详尽的罗列&#xff1a; ACTION_PACKAGE_ADDED 一个新应用包已…

批量修改文件名称(现学现卖版)

目录 一、复制所有文件路径二、批量修改 一、复制所有文件路径 ctrlA选中所有文件&#xff0c;点击主页&#xff0c;复制路径 粘贴到excal表格中 添加新文件名 组合命令&#xff0c;插入函数CONCATENATE ren空格<旧文件名>空格<新文件名><后缀名> …

《商业模式的逻辑》-1-为什么要学习商业模式

学习商业模式&#xff0c;也许你的idea会因为有商业模式的加持而变为现实^_^ 视频参考&#xff1a;【商业模式的逻辑】1. 为什么要学习商业模式_哔哩哔哩_bilibili【商业模式的逻辑】1. 为什么要学习商业模式是【商业模式的逻辑】清华大学&#xff08;全11讲&#xff09;沈拓 …

第四章 应用SysML基本特性集的汽车示例 P1|系统建模语言SysML实用指南学习

仅供个人学习记录 汽车模型 主要就是应用练习建模了 Automobile Domain包 用于组织模型的包图 将模型组织入包的包图 应用需求图捕获汽车规范 汽车规范中包含系统需求的需求图 应用块定义图定义车辆及其外部环境 汽车域块定义图 应用用例图表示操作车辆 描述车辆…

照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版 2024年最新中文版下载

照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版是一款功能强大的专业级图像编辑软件&#xff0c;由Serif公司开发。它提供了广泛的工具和功能&#xff0c;适用于摄影师、设计师和艺术家。 照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版软件介绍 TIFF&#…

图扑 HT for Web 手机端运维管理系统

随着信息技术的快速发展&#xff0c;网络技术的应用涉及到人们生活的方方面面。其中&#xff0c;手机运维管理系统可提供数字化、智能化的方式&#xff0c;帮助企业和组织管理监控企业的 IT 环境&#xff0c;提高运维效率、降低维护成本、增强安全性、提升服务质量&#xff0c;…

HCIA数据通信——静态路由

之前的文章中我提到过静态路由&#xff1a; 数据通信——网络层&#xff08;路由器以及数据转发流程&#xff09;_路由器如何转发数据_咕噜跳的博客-CSDN博客这里只做一些简单描述。 路由器关注的是网络之间的通信。路由器以自身为中心&#xff0c;考虑的是如何将数据发送到目…

面试算法46:二叉树的右侧视图

题目 给定一棵二叉树&#xff0c;如果站在该二叉树的右侧&#xff0c;那么从上到下看到的节点构成二叉树的右侧视图。例如&#xff0c;图7.6中二叉树的右侧视图包含节点8、节点10和节点7。请写一个函数返回二叉树的右侧视图节点的值。 分析 既然这个题目和二叉树的层相关&a…

菜单栏翻译软件Bob录屏权限在哪打开

Bob是一款Mac翻译软件&#xff0c;翻译方式支持划词翻译、截图翻译以及实时翻译&#xff0c;翻译引擎支持有道翻译、百度翻译和谷歌翻译&#xff08;国内和国外双版本&#xff09;。速度非常快&#xff0c;使用简单&#xff0c;bob使用这款好用的翻译软件吧. 注意事项&#xff…

用起来顺手的在线表结构设计软件工具Itbuilder,与你共享

在线表结构设计软件工具需功能简洁&#xff0c;去除晦涩难懂的设置&#xff0c;化繁为简&#xff0c;实用为上&#xff0c;上手非常容易&#xff0c;这些itbuilder统统可以做到。 itbuilder是一款基于浏览器开发的在线表结构设计软件工具&#xff0c;借助人工智能提高效率&…

C/C++选择排序算法

文章目录 例题原理阐述代码实现总结 例题 原理阐述 从小到大排序&#xff0c;每次选择序列的最小的一个数&#xff1b; 将原来的序列A分割为排好序的序列a和未排序的序列b&#xff1b; 从未排好序的序列b中找到最小值&#xff0c;插入到排好序的序列a后面&#xff0c;形成从小…

golang 实现雪花算法

雪花算法概述 snowflake 是 twitter 开源的分布式ID生成算法&#xff0c;其核心思想为&#xff0c;一个long型的ID&#xff1a; 41 bit 作为毫秒数 - 41位的长度可以使用69年10 bit 作为机器编号 &#xff08;5个bit是数据中心&#xff0c;5个bit的机器ID&#xff09; - 10位…

二叉树OJ题(检查两颗数是否相同、另一棵树的子树、翻转二叉树、判断平衡二叉树)

文章目录 二叉树OJ题一、 检查两颗数是否相同1.思路2.解题步骤3.代码 二、另一棵树的子树1.思路2.代码 三、翻转二叉树1.思路2.解题步骤3.代码 四、判断平衡二叉树1.思路2.代码 二叉树OJ题 一、 检查两颗数是否相同 1.思路 1.两个树&#xff0c;在保证结构相同的同时&#xff0…