美文网首页
2.【干货】火爆全网的《超全C++进阶精品教程》C++运行原理和

2.【干货】火爆全网的《超全C++进阶精品教程》C++运行原理和

作者: 鹏城十八少 | 来源:发表于2023-04-06 17:15 被阅读0次

    学习内存、编译和链接,弄清编程语言的内在机理。

    学习内存、编译和链接,弄清编程语言的内在机理。

    C++ 支持面向过程编程、面向对象编程和泛型编程

    动态库和静态库: 

    谁能简单明白易懂说明一下.a .o .so 这几个文件到底啥区别

    1、是静态库类似NT下的lib

    2、是对象文件。就是编译成程序时的半成品。

    3、是动态库类似NT下的DLL

    程序运行的流程:

    操作系统会把物理硬盘上的代码 load 到内存

    加载到内存后会把 c 代码分成 4 个区

    然后系统会找到 main 函数的入口去执行

    回调采用的2种方式

    1. c++种的接口

    2. c中的函数指针

    函数调用是有时间和空间开销的。程序在执行一个函数之前需要做一些准备工作,要将实参、局部变量、返回地址以及若干寄存器都压入栈中,然后才能执行函数体中的代码;函数体中的代码执行完毕后还要清理现场,将之前压入栈中的数据都出栈,才能接着执行函数调用位置以后的代码

    C/C++ 代码生成可执行文件的过程:

    need-to-insert-img

    8. c++底层原理(汇编)

    栈平衡: 

    c++ 编译后盛出的是啥?

     32位编译器:

          char :1个字节

          char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

          short int : 2个字节

          int:  4个字节

          unsigned int : 4个字节

          float:  4个字节

          double:   8个字节

          long:   4个字节

          long long:  8个字节

          unsigned long:  4个字节

      64位编译器:

          char :1个字节

          char*(即指针变量): 8个字节

          short int : 2个字节

          int:  4个字节

          unsigned int : 4个字节

          float:  4个字节

          double:   8个字节

          long:   8个字节

          long long:  8个字节

          unsigned long:  8个字节

    在VS中,不管是32位系统还是64位系统,int型都是4字节,只有指针类型不同(因为地址位数不同,造成寻址不同,造成指针大小不同)

    ————————————————

    7. 深拷贝和浅拷贝

    浅拷贝:简单的赋值拷贝操作(这个是系统默认提供的)

    深拷贝:在堆区重新释放空间,进行拷贝操作(要自己写的)

    简单来说,只要类属性里有指针等就必须利用深拷贝操作

    demo: 

    https://blog.csdn.net/qq_62512411/article/details/127665417

    相关文章

      网友评论

          本文标题:2.【干货】火爆全网的《超全C++进阶精品教程》C++运行原理和

          本文链接:https://www.haomeiwen.com/subject/dtuuddtx.html