![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础知识
文章平均质量分 82
基础入门学习
惺忪牛犊子
边学习边记录
展开
-
基础知识——C程序的内存空间布局
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: 《Unix环境高级编程》目录:组成:1.正文段2.初始化数据段3.非初始化数据段4.栈5.堆组成:1.正文段 这是由CPU执行的机器指令部分。通常,正文段是可共享的,所以即使是频繁执行的程序(如文本编辑器、C编译器和shell等)在存储器中也只需有一个副本,另外,正文段常常是原创 2022-04-14 10:51:45 · 1750 阅读 · 0 评论 -
入门系列:基础认知——环境变量
环境变量是什么? 来自百度百科解释: 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运原创 2022-03-18 17:14:59 · 998 阅读 · 0 评论 -
入门系列:基础认知——同步与异步
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: 一、同步(Synchronous) 同步:相【同】的【步】调 同步在不同场景的含义略有区别,如:生活中: 场景一:两个人跳舞,这两人舞步好同步 ==》舞步一致 场景二:将本地通讯录与云端通讯录同步一下 ==》通讯录一致 所以生活中理解的同步原创 2022-03-11 22:24:45 · 459 阅读 · 0 评论 -
入门系列:基础认知——串行、并发、并行
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: 串行、并行与并发的理解 并发和并行的区别(图解)一、串行(Serial) 1️⃣串:一连串(一列),行:向前走 ==》 一列的向前走 2️⃣在多任务的单处理器执行环境下的表现: 每次只能处理一个任务,处理好后才会处理下一个任务。 3️⃣情景类比:(动车站只开放原创 2022-03-11 22:24:18 · 2326 阅读 · 0 评论 -
入门系列:基础认知——gdb认识
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: GDB入门教程之如何使用GDB启动调试 【GDB调试-1】认识GDB 认识GDB GDB (The GNU Project Debugger)是 Linux 系统下调试 C/C++ 程序工具。允许查看正在执行的程序里面在做什么,或者是程序崩溃原创 2021-10-05 15:45:42 · 280 阅读 · 0 评论 -
入门系列:基础认知——objdump认识
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: objdump命令 objdump 分析 objdump命令 objdump命令 Linux:objdump命令解析认识objdump objdump是gcc(gnu编译器家族)工具中的一员。 查看objdump帮助手册:help objdump或info o原创 2021-10-07 19:25:55 · 880 阅读 · 0 评论 -
入门系列:基础认知——main函数参数说明
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: main函数的参数详解 main函数的的两个参数main函数 main函数,又称主函数,是程序执行的起点,也是终点。有且仅有一个。 C语言规定main函数函数形参有两个: ①argc:整型变量 ,表示参数的个数. ②argv:指向字符串的指针数组,表示存放原创 2021-10-05 15:44:16 · 3418 阅读 · 1 评论 -
入门系列:基础认知——Intel架构基础知识
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: 《Debug Hacks》字节序 字节为计算机中存储单元,字节序就是该单元的数据应该以哪种顺序进行传送,用英文单词:Endian表示。 Endian单词的由来是从《格列夫游记》中,主人公畅游小人国中的一个场景,小人国对水煮蛋应从大端(big-end)还是小端(little-e原创 2021-10-05 14:04:27 · 544 阅读 · 0 评论 -
入门系列:基础认知——32位与64位概念
文章来源 CSDN-FlyWine CSDN-sjplir-32位系统为什么又叫x86系统呢? Dee_博客-为什么x86不叫x32? 简单概括,详细请看上面文章,自己整理思路,有错请指正。① X86 = i386 = 32位系统 Intel开发出8086(16位)微处理器,使用该架构继续出产:Intel 80286、Intel 80386(i386)等等,而这一系列的 *86系统,用X(通配符)简单命名为X86,正式命名应为:IA-32(Intel Architecture 32-原创 2021-08-21 13:46:03 · 875 阅读 · 0 评论 -
入门系列:基础认知——交叉编译概念
概念编译流程 由源程序形成可执行文件的过程被细分为以下四个阶段。 hello.c (源代码) 阶段一:预处理(preprocessing) || hello.i(预编译后代码):在源代码中插入头文件,宏替换等(处理以“#”开始的预处理指令)。 阶段二:编译(compile) || hello.s(汇编源代码):编译器对代码优化,得到汇编文件。原创 2021-03-18 20:09:25 · 677 阅读 · 0 评论 -
入门系列:基础认知——gcc认识
编译流程 由源程序形成可执行文件的过程被细分为以下四个阶段。 hello.c (源代码) 阶段一:预处理(preprocessing) || hello.i(预编译后代码):在源代码中插入头文件,宏替换等(处理以“#”开始的预处理指令)。 阶段二:编译(compile) || hello.s(汇编源代码):编译器对代码优化,得到汇编文件。 阶原创 2021-03-18 20:10:29 · 255 阅读 · 0 评论 -
入门系列:gdb学习——查看反汇编的输出结果,学习汇编
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: 《Debug Hack 中文版》#13 汇编语言(指令简表) 汇编指令对照表 x86汇编指令集大全(带注释实践 ①创建源文件:vim assemble.c#include<stdio.h>int global; //全局变量int原创 2021-10-07 19:23:22 · 2452 阅读 · 0 评论 -
入门系列:gdb学习——函数调用时参数传递
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: 《Debug Hack 中文版》 实验环境: ubuntu16.04,64位内容 接下来要进行函数参数传递的调试。 参数传递方法根据架构、语言、编译器的不同而不同。参数的存储位置 整型和指针型的参数会从左至右依次保存到rdi、rsi、rdx、rcx、r8、r9原创 2021-10-07 14:24:32 · 2292 阅读 · 0 评论 -
入门系列:gdb学习——函数调用栈
说明: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 QQ 群 号:513683159 【相互学习】内容来源: 走进C语言:堆、栈与堆区、栈区,你知道有什么区别吗? 浅谈堆、栈、堆区、栈区的概念和区别 在64位linux下编译32位程序栈(stack)的相关知识什么是stack? stack即栈/栈堆/堆叠,一般可分为两种:①数据结构(栈)②与内存分配有关(栈区)。 栈是一种原创 2021-10-07 10:57:47 · 2233 阅读 · 2 评论 -
基础知识:篇6-cmake工具与CMakeLists.txt文件
参照自:博客园——小楼一夜听春雨Makefile文件(make工具)和CMakeList.txt文件(cmake工具)写程序的步骤:1.编写源文件和头文件,如:.c文件和.h文件。2.编译器编译代码生成目标文件,如:.o文件。3.链接器连接代码生成可执行文件,如:.exe。====》一个源文件可使用gcc命令直接进行编译链接。====》若源文件太多一个个编译太过繁琐且复杂,还是交给计算机吧(做一个工具:使用类似批处理程序,批量编译程序),便产生make工具(自动化编译工具,本身并不具备编译和批原创 2021-05-30 15:01:48 · 1055 阅读 · 0 评论 -
基础知识:篇5-Makefile示例
文章来源 刚开始学习,若有错误处请指出,共同进步。 QQ 群 号:513683159原创 2022-05-08 23:11:19 · 397 阅读 · 0 评论 -
基础知识:篇4-make工具与Makefile文件概念
摘抄自:C语言中文网Makefile是什么? 在Linux开发下,文件编程一般是通过指令来实现,但若要编写一个大工程的话,每次还在命令行中使用指令进行编写就显得十分困难,故可使用一个文件描述这样的编译过程,而这便是Makefile; 可以简单的认为是一个工程文件的编程规则,描述了工程的编译和链接等规则。换句话说,可使项目工程的编译自动化,写好文件后,只需make一下,便自动完成编译链接的过程。 若编译大的工程需要花费很长时间,也可通过Makefile文件实现多线程并发加快编译。当修改源文件后,原创 2021-04-30 02:15:08 · 542 阅读 · 0 评论 -
基础知识:篇3-静态库与动态库
文章来源腾讯云-linux动态库和静态库腾讯云-Linux 中的静态库和动态库简介及生成过程示例腾讯云-详解Linux动态库生成与使用指南静态库与动态库都是一个obj文件的集合,静态链接后,执行程序中存在自己所需obj的一份拷贝,动态链接后,执行程序仅仅是包含对共享库的一个引用。静态链接后的程序比动态链接的所用存储空间大,因为执行程序中包含了库中代码拷贝;而动态链接的程序比静态链接的所用的运行空间大,因为它将不需要的代码也加载到运行空间。基础概念 1️⃣什么是库? 在实际的软件原创 2021-07-27 18:21:20 · 455 阅读 · 0 评论 -
基础知识:篇2-多源文件编译过程
文章来源:CSDN-官方认证平平无奇说废话小天才-C语言编写头文件CSDN-mirror207-C语言头文件编写的几个基本规则CSDN-懒羊羊是程序猿-如何理解头文件?总结模块化箱式设计——函数——函数出现调用时的作用域问题——被调用的在前,调用的在后嵌套调用,前面的调用后面的,后面的调用前面的——通过声明扩展作用域——声明出现声明独立与c文件分离——头文件出现情景 在实现C语言模块化编程时,通常会用到*.h式的头文件,那么头文件有什么作用呢?头文件的格式?头文件的作用 1.定义原创 2021-07-27 18:10:22 · 410 阅读 · 0 评论 -
基础知识:篇1-单源文件编译过程
情景 ubuntu16.04-server下编写最简单的程序hello.c编译后并执行,输出:hello。第一步:编写源文件 输入指令:vim hello.c【使用vim编辑器编辑hello.c(若无hello.c则创建】#include <stdio.h>int main (int argc ,char **argv){ printf("hello\n"); return 0;}第二步:编译源文件 输入指令:gcc hello.c【g原创 2021-07-27 18:08:45 · 303 阅读 · 0 评论