自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 6 c++函数默认值 函数重载

二部分1.函数的默认值2.函数重载3.inline函数4.C/C++相互调用5.引用6.const​ const和指针的结合7.new/delete8.namespace函数调用过程​ 实参的入栈顺序 自右向左函数的实参和形参的匹配顺序 自左向右函数的默认值​ 函数设计过程中给予形参默认值​ 没有实参,形参有默认值函数默认值的赋予规则1.默认值的赋予自右向左依次赋予2.默认值不能重复赋予3.默认值一般设立在声明上#inc

2021-03-31 21:33:01 121

原创 4 c++ 链接

汇编 .o目标文件以编译单元为单位汇编阶段没有处理的:1.强弱符号2.符号表 外部符号处理3.指令段 虚假地址和虚假偏移链接阶段处理的:1.合并段和符号表 强弱符号2.符号解析3.分配地址和空间 程序和虚拟地址空间的映射4.符号的重定位处理UND区域符号​ 通过声明找到定义的位置符号解析​ 在符号引用的地方找到符号定义的地方进程运行1.建立虚拟地址空间和物理内存的映射(创建内核映射结构体),创建页目录页表2.加载指令和

2021-03-31 21:27:47 81

原创 3 c++ 目标文件链接

问题:汇编后,文件中存在什么内容?1.汇编阶段 bss少了4个字节 1个数据 少了那个数据 为什么?​ gdata3在comment段 因为预编译、编译、汇编阶段都是对源文件进行处理​ 这里涉及到强弱符号的问题。而强弱符号是在链接阶段处理的​ 静态的全局变量和静态的局部变量没有强弱符号一说,因为静态文件仅本文件可见​ 举例:​ 因为在汇编阶段,编译器对test.c的源文件进行处理时是看不见main.c的源文件的​ 所以在对test.c的

2021-03-31 21:24:07 157

原创 2 c++ 编译原理

预编译(.i)1.删除#define 文本替换2.处理#include 递归展开3.处理#if #endif 等预编译指令4.删除注释5.添加行号和文件标识6.保留#pragma编译(.s)1.词法分析2.语法分析 一行表达式3.语义分析 结合上下文4.代码优化5.生成汇编指令 低级语言**汇编(.o)**目标文件 可重入的二进制文件1.翻译指令 (把低级语言翻译为机器语言)链接(.exe) 能运行 可执行文件数据段(.data 和 .bss)存放

2021-03-31 21:20:19 185

原创 new和malloc

一、简单谈一下内存分配的几种方式1.从静态存储区域分配内存在程序编译的时候以近乎分配好,这块内存在程序的整个运行期间都存在。(例如全局变量、static变量)2.在栈上创建在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。占内存分配运算内置于存储器的指令集中,效率很高,但是分配的内存容量有限。3.从堆上分配(动态内存分配)程序在运行的时候用malloc或new申请任意多少的内存,然后再自行选择再何时free和delete释放内存。动态内存的生存期由我们

2021-03-30 23:35:15 188

原创 linux:fork

fork创建出一个新进程,新的进程叫做子进程,原来的进程叫父进程,父进程返回子进程的pid(唯一标识一个进程),子进程最终返回0pid_t == int 一共能够产生多少个进程,int能表示的范围 最大有32768fork()一旦运行以后,首先为它申请一个pid,如果pid没法申请出来,就说明有可能达到了操作系统能够运行的最大数目了,所以pid申请失败了。也有可能一个用户进行进程过多,已经不能再去获取进程了pid = 3456 (父进程) 和 pid = 3457 (子进程) 的唯一区别pid

2020-08-20 11:57:22 108

原创 文件的查看删除拷贝移动

创建:touch 创建普通文件mkdir 创建目录文件删除:rmdir 删除目录文件rm 删除文件rm -r 删除目录文件移动:mv 移动文件、剪切、重命名拷贝:cp 拷贝文件查看:cat 查看文件,合并文件more 查看文件,可以分屏幕显示less 查看文件head 查看文件前10行tail 查看文件后1

2020-08-19 21:05:50 112

原创 linux编译和链接指令

编译和链接:1.预编译(生成.i文件)(1)将所有的“#define”删除,并且展开所有宏;(2)处理掉所有条件预编译指令,如:“#if”、“#ifdef”、“#elif”、“#else”、“#endif”;(3)处理“#include”指令,这是一个递归过程;(4)删除所有的注释“//”和“/* */”;(5)添加行号和文件名标识;(6)保留所有的#pragma编译器指令,待编译器使用;2.编译(生成.s文件)把预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化后生成相对应的汇

2020-08-19 20:40:42 512

原创 5 c++函数堆栈调用

#include<stdio.h>int Sum(int left,int right){ int tmp = 0; tmp = left + right return tmp;}int main(){ int a = 10; int b = 20; int rt; rt = Sum(a,b); printf("rt:%d\n",rt); return 0;}问题:函数和函数调用过程中1.形参开不开辟

2020-08-19 20:12:08 118

原创 1.C++编译链接运行原理

预编译(.i)1.删除#define 文本替换2.处理#include 递归展开3.处理#if #endif 等预编译指令4.删除注释5.添加行号和文件标识6.保留#pragma编译(.s)1.词法分析2.语法分析 一行表达式3.语义分析 结合上下文4.代码优化5.生成汇编指令 低级语言**汇编(.o)**目标文件 可重入的二进制文件1.翻译指令 (把低级语言翻译为机器语言)链接(.exe) 能运行 可执行文件数据段(.data 和 .bss)存放

2020-08-19 19:59:10 166

原创 计算机系统、硬件、实质(绪论)

计算机系统以硬件为核心,叠加计算机不同层次的软件,构成一个计算机系统,如下图所示:硬件是计算机系统的物质基础,软件是计算机系统的灵魂,硬件和软件是相辅相成的,不可分割的整体。固件:指那些存储在能够永久保存信息的器件(如ROM)中的程序,是具有软件功能的硬件计算机系统硬件计算机系统硬件组成包括五个功能部分:运算器控制器存储器输入系统输出系统中央处理器(CPU)CPU ...

2020-03-31 16:44:55 658

原创 linux目录结构及各个目录放置的文件

@linux 1linux目录结构及各个目录放置的文件/bin 命令,二进制可执行程序,即可执行程序存放的地点/boot 内核及与系统启动有关的文件/dev 设备文件存放地点/lib 库文件存放地点/etc 系统配置文件/usr 放置不常变动的可分享的内容。系统安装...

2020-03-28 18:34:46 312

原创 (进制的转换)假设在n进制下,下面的等式成立,567*456=150216,n的值是?

(进制的转换)假设在n进制下,下面的等式成立,567*456=150216,n的值是?A.9 B.10 C.12 D.18【解析】第一步:等式两边都转化为十进制(5n^ 2 + 6n + 7) * (4n^ 2 + 5n + 6) = n^ 5 + 5n^ 4 + 2n^2 + n + 6化简为:20n^4 + 49n^3 + 88n^2 + 71n + 42 = n^5...

2019-10-27 11:03:32 271

原创 给一个不多于五个的正整数,要求 1)求出它是几位数 2)分别输出每一位数字 3)按逆序输出各位数字,例如原数321,输出123

给一个不多于五个的正整数,要求1)求出它是几位数2)分别输出每一位数字3)按逆序输出各位数字,例如原数321,输出123#include<stdio.h>{ if(n==0) { return 1; } int i=0; while(n != 0) { n =n/10; i++; } return i;}//逆序输出,得到个位数字,对10取余,...

2019-10-12 17:26:35 380

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除