Txing

欢迎来到 | 伽蓝之堂

0%

CPP Programming | Chapter 0:C++基础

##Chapter 0 C++基础

工具:

  • /usr/bin/time sleep 1: 系统停止1毫秒,/usr/bin/time是监控程序运行时间的命令行
  • valgrind: 内存泄露检测;

一些网站:

  • cppreference.com:较权威的C++百科全书,命令查询;

  • compiler explorer:汇编代码生成并运行,自由选择编译器,不同版本编译器对比;

  • Cppinsights:生成等价代码解释;

  • youtube CppCon:C++相关技术的会议;

C++编译:

  • 分块编译机制,减少资源消耗
  • 便于修改
  • 头文件/源文件
  • 翻译单元:源文件+相关头文件-应忽略的预处理语句
  • 编译文件为可执行文件:g++ ./main.cpp -o ./main
  • 防止头文件循环展开:
    • #ifndef方案,如果没有编译该头文件,则编译该头文件;
    • #pragma once方案,(比较好的方案)只编译一次该头文件;
  • Debug编译引入优化较少
  • Release编译引入优化较多
  • 增量编译 & 全部编译
  • 连接(Linkage)种类:内部连接、外部连接、无连接
  • C++程序预处理、编译、链接都可能出错