静态链接——编译和链接
一、编译和链接的过程 1、GCC生成可执行文件的总体过程 在日常的开发过程中,IDE总是会帮我们将编译和链接合并,一键式的执行,即使在liunx中,使用命令行来编译一个源文件也只是简单的一句"gcc hello.c"。我们并没有过多的关注编译和链接的运行机制和机理,我想从本质出发,深入了解这些机制。对于下面一段hello.c代码 #include <stdio.h> int main
C/C++编程 2023年07月11日 96
一、编译和链接的过程 1、GCC生成可执行文件的总体过程 在日常的开发过程中,IDE总是会帮我们将编译和链接合并,一键式的执行,即使在liunx中,使用命令行来编译一个源文件也只是简单的一句"gcc hello.c"。我们并没有过多的关注编译和链接的运行机制和机理,我想从本质出发,深入了解这些机制。对于下面一段hello.c代码 #include <stdio.h> int main
C/C++编程 2023年07月11日 96
前言 在C语言中,有三种条件判断结构:if语句、if-else语句和switch语句。 一、if语句 基本语法 if (条件) { // 代码块1} 代码示例 #include <stdio.h> int main() { int num = 5; if (num > 0) { printf("这个数为正数.\n")
C/C++编程 2023年07月11日 119
内存模型 C++在执行程序的时候,将内存方向划分为4个区域: 代码区:存放二进制代码,由操作系统进行管理 全局区:存放全局变量、静态变量、常量,程序结束后由操作系统释放 栈区:存放函数参数、局部变量,由编译器自动分配和释放 堆区:由开发者申请分配和释放,若程序员不释放,程序结束由操作系统自动回收 意义:对于不同区域存放的数据,赋予不同的生命周期,给编程更大的灵活性。 代码区
C/C++编程 2023年07月11日 97
1. 什么是编译 1.1. 计算机程序设计语言的三个层次 在计算机系统中,主要有三种层次的语言,他们是机器语言、汇编语言、高级语言。 机器语言是可以被计算机理解的语言,计算机只能理解01二进制序列,但是机器语言特别难记。 汇编语言在机器语言的基础上引入了助记符,方便记忆一些,但是要熟悉目标机器的指令特点,使用效率低,对人要求高。 正是如此引用高级语言,高级语言采用类似数学定义或者自然语
C/C++编程 2023年07月11日 85
1.树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 补充: 有一个特殊的结点,称为根结点,根节点没有前驱结点。除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i <
C/C++编程 2023年07月11日 130
1.读取文件的信息 JPEG格式中信息是以段(数据结构)来存储的。 段的格式如下 名称 字节数 数据 说明 段标识 1 FF 每个新段的开始标识 段类型 1 类型编码(称作“标记码”) 段长度 2 包括段内容和段长度本身,不包括段标识和段类型 段内容 ≤65533字节 其余具体信息请见以下链接,我就不当复读机了。 JPEG标记的说明 格式介绍 值得注意
C/C++编程 2023年07月10日 223