C++杂项

  1. std::string_view只有在以pass by value当作形参并且以C风格字符串传参时才有效。
  2. perror感觉是包装了strerror。
  3. gcc是默认的c编译器,不会链接c++标准库,所以编译.cpp文件会遇到链接错误;g++专门处理c++的编译和链接;如果需要在c语言中调用c++代码,需要用extern “C”{}包裹。
  4. read系统调用从终端读取时遇到\n返回,并且\n已被读入。
  5. [[deprecated]]属性要在头文件和源文件的函数前都添加。
  6. git cliff自动生成changelog的工具。
  7. 成员变量是std::unique_ptr的时候把析构函数定义在源文件。如果放在头文件中,析构函数会调用std::unique_ptr类型的析构函数,但是在函数中看不到指向类型的完整类型,所以报错。
  8. 如果类中定义了移动构造或移动赋值,或者成员变量不支持拷贝操作,编译器不会自动为其生成拷贝构造或拷贝赋值函数;当类中没有定义任何拷贝操作时,且所有成员都支持移动操作时,编译器才会为其生成移动构造和移动赋值函数。
  9. 如果不涉及动态内存分配或文件句柄管理,则5个都不写;要不就显式定义5个函数,或者用default和delete明确其行为。
  10. 初始化列表不能初始化父类的成员变量。
  11. -fno-plt选项可以绕过PLT中间层,直接跳转到GOT表的符号地址,提高性能,但也会增加符号解析的复杂性。
  12. gcc c ompiler options
    1. -g:无优化,生成调试信息
    2. -Og:启用一些优化,但不影响生成调试信息
    3. -O0:不进行优化(默认)
    4. -O1(或-O):基本优化
    5. -O2:up!
    6. -O3:up!up!
  13. 代码中不对调用函数进行声明的时候编译器会进行隐式声明,会报[-Wimplicit-function-declaration]警告
  14. -rdynamic选项开启后backtrace_symbols才能返回具体函数名
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值