西区代码小仓库 - C/C++
type: channel
link: https://www.lisper517.top/category/C-C/
description: C与C++
items: codeblocks为何不能使用多个编译单元
items: 《C++ Primer Plus》第六版（英文版）-Stephen Prata（笔记）

codeblocks为何不能使用多个编译单元
type: item
date: 2025-12-17T13:30:00+00:00
description: 步骤/目录： 无本文首发于个人博客https://lisper517.top/index.php/archives/4228/，转载请注明出处。本文的原文写作日期为2020年3月6日。本文的目的如标题所示。最近用codeblocks，发现main.cpp里一直用不了其他编译单元的函数。从头到尾检查：1.自己定义的头文件有没有包含函数原型？有2.函数原型和函数定义头部或者调用时有没有写错？无3.有没有在函数头前加static导致函数只能本文件内使用？无4.添加文件或写创建新文件时有没有勾选Debug和Release？有最后终于找到原因了：添加或创建时，表面看起来自动勾选了Debug和Release，但其实没有勾，需要手动勾选。

《C++ Primer Plus》第六版（英文版）-Stephen Prata（笔记）
type: item
date: 2025-10-16T03:11:00+00:00
description: 步骤/目录： 第一部分 第1-7章 第二部分 第7-16章（算法前） 第三部分 16章-附录前本文首发于个人博客https://lisper517.top/index.php/archives/4155/，转载请注明出处。本文的原文写作日期为2020年3月1日，主要目的是总结《C++ Primer Plus》第六版（英文版）。当年还在疫情期间居家，1438页的英文版，每天看50页，一个月看完。下面的内容有些缩进或者图片缺失，可以参考 原word文档 。第一部分 第1-7章1.变量的声明与赋值 写法 int a=1;int a(1);int a={1};int a{1};int a={};int a{}; 最后两个语句中a赋值为0。 {}为initialization list，可用于数组的declaration and definition。 2.不同进制的标识 10进制(decimal)第一个bit为0-9； 8进制(octal)第一个bit为0，第二个bit为0-7； 16进制(hexadecimal)前两个bit为0x或0X。 分别以cout<<dec/hex/oct;改变输出进制，对剩余的输出都有效。 3.数字常量的存储 cout<<1000; 默认存为int。加l或L后缀指定为long： cout<<1000L; u为unsigned long,同理有ul、ull等。 八进制、十六进制的数按int,u int,l,ul,ll,ull的优先顺序存放。 4.转义字符 \n newline \t 水平制表符 \v 垂直制表符 \b 回车符 \r carriage return \a alert 5.扩展字符集 ISO 10646 \u后跟8个十六进制bit，\U后跟16个十六进制bit。 如ö为\u00F6 â为\u00E2 wchar_t用于更复杂的字符集，占2bytes，加L标识，用wcout函数： wchar_t bob = L'P';wcout << L"tall" << endl; C++11引入了char16_t和char32_t，分别占16bits和32bits，加u和U标识。 +5.37E+16 一个科学记数法实例 E/e皆可，e后可为+/-，为指数的符号；为+可省略。 6.setf()函数 C++中cout.setf(ios::left,ios::adjustfield); cout.setf(ios::showpoint,ios::showpint); cout.setf(ios::scientific,ios::floatfield); 分别表示什么 参考以下： 1.使用控制符控制输出格式 控制符 作用 dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设置整数的基数为8 setbase(n) 设置整数的基数为n(n只能是16,10,8之一) setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setprecision(n) 设置实数的精度为n位.在以一般十进制小数形式输出时,n代表有效数字.在以fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数. setw(n) 设置字段宽度为n位. setiosflags(ios::fixed) 设置浮点数以固定的小数位数显示. setiosflags(ios::scientific) 设置浮点数以科学计数法(即指数形式)显示. setiosflags(ios::left) 输出数据左对齐. setiosflags(ios::right) 输出数据右对齐. setiosflags(ios::shipws) 忽略前导的空格. setiosflags(ios::uppercase) 在以科学计数法输出E和十六进制输出字母X时,以大写表示. setiosflags(ios::showpos) 输出正数时,给出“+”号. resetiosflags 终止已设置的输出格式状态,在括号中应指定内容. 2.用流对象的成员控制输出格式 流成员函数 与之作用相同的控制符 作用 precision(n) setprecision(n) 设置实数的精度为n位. width(n) setw(n) 设置字段宽度为n位. fill(c) setfill(c) 设置填充字符c. setf( ) setiosflags( ) 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中内容相同. ubsetf( ) resetiosflags( ) 终止已设置的输出格式状态. cout.width(10); cout.setf(ios::hex); 3.设置格式状态的格式标志 格式标志 作用 ios::left…