• c++中特殊的知识点(持续更新)


    gcc和g++的区别:

    • GCC:GNU Compiler Collection(GUN 编译器集合)可以编译多种语言
    • gcc和g++是其中的两种:这两个只是驱动器,并不是编译器,只是会调用GNU

    gcc

    g++

    编译器类型C编译器C++编译器
    对.c和.cpp文件分别当做c和cpp文件编译统一当做cpp文件编译
    STL而gcc不会自动链接STLg++会自动链接标准库STL
    宏的使用

    .c 可使用的预定义宏是比较少

    .cpp会加入一些额外的宏

    都会加入一些额外的宏
    对STL的使用需要加参数 –lstdc++不需要额外加参数

    malloc,calloc,realloc,new 申请空间的区别

    mallocvoid *malloc(unsigned int size)

    在内存的动态分配区域中分配一个长度为size的连续空间,分配成功则返回所分配内存空间的首地址,否则返回NULL,申请的内存不会初始化,存储的是一些数据数据

    calloc:void *calloc(unsigned int num,unsigned int size)

    按照所给的数据个数和数据类型所占字节数,分配一个 num * size 连续的空间。

    calloc申请内存空间后,会自动初始化内存空间为 0

    realloc: void *realloc(void *ptr,unsigned int size)

    动态分配一个长度为size的内存空间,并把内存空间的首地址赋值给ptr,把ptr内存空间调整为size,申请的空间不会初始化

    new :是动态分配内存的运算符,自动计算需要的空间,同时调用类的构造函数,对内存空间进行对类的初始化。动态分配内置类型推导是否自动初始化取决于变量定义的位置,在函数体外定义的变量都初始化为0,在函数体内定义的内置类型变量都不进行初始化

  • 相关阅读:
    Photoshop学习笔记的小tips分享
    FreeRTOS教程8 任务通知
    Gbase8s CREATE ROW TYPE 语句3
    Jenkins安装和配置 (一)
    低代码平台是什么意思?低代码平台如何设计与实现?
    [数据结构]-二叉搜索树
    帖子求助:两台电脑时间相差1或2秒
    go中高并发下的锁是如何工作的(结合源码)
    条码管理操作手册
    Rabin-Karp 字符串哈希算法总结
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/125356444