- 博客(5)
- 收藏
- 关注
原创 关于C++的常见简单问题
常见简单问题:1、局部变量存放在哪里??stack(栈)上int a = 10; 此时的a就是存放在栈上的,汇编指令就是mov dword ptr[ebp-4], 0Ah,以前有人这样讲,分配了一个4字节的内存,取名为a,其实这样是不准确的,实际上就没有叫a名字的内存地址,都是汇编指令来做的,指令存放在.text段,指令做的事情是在stack上ebp-4位置存放一个数字10,它不属于数据的...
2019-08-18 22:48:46 320
原创 宏和内联的区别
宏和内联的区别分成三个方面来回答:1、处理的时期(阶段)不一样:宏 的处理是在 预编译 阶段处理的,就是字符串的替换,可以顺便想一想,预编译阶段都做了什么事情??处理以#开头的命令,ifdef、ifndef、endif (条件编译)、#include引入头文件、删除注释、宏替换,但是#program 这样的命令不会被处理掉的,比如#pragma lib,它是指定当前程序需要的链接库,它必须...
2019-08-18 13:21:04 589
原创 函数栈帧的调用过程
函数栈帧的调用过程int sum(int a, int b){ int tmp = 0; tmp = a + b; return tmp;}int main(){ int a = 10; int b = 20; int ret ; ret = sum(a,b); cout << "sum = " << ret << endl; r...
2019-08-05 15:05:27 481
原创 进程的虚拟地址空间
进程的虚拟地址空间先抛出一个问题,什么是进程的虚拟地址空间,它是常说的虚拟内存吗??不要走,这篇博客虽然不短,但是如果你想成为优秀的人,就耐心的看下去我们知道任何的编程语言,无非生成的就是两种东西,指令和数据,编译链接完成以后,产生一个xxx.exe可执行的文件(Windows上)存放在我们的磁盘上的,而不是内存中,当程序运行的时候(Windows上双击运行,Linux ./a.out运行起...
2019-08-05 11:57:47 538
原创 讲一下 :引入头文件的两种
the difference between #include&quot;xx.h&quot; and #include&amp;lt;xx.h&amp;gt;#include&quot; .h&quot;是用来引入非标准库的头文件的,编译器从用户的工作目录开始搜索这个过程是这样的:其中“ ” 表示编译器先从程序源文件所在的目录中查找,如果没有找到的话,再去系统默认的目录去找,通常是用来包含程序编写者提供
2018-11-02 15:40:55 1962
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人