![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 70
LittleTan24
正确的判断来自于经验,而经验来自于错误的判断!
展开
-
单元测试学习笔记
单元测试的一些好处:单元测试降低了Bug数量防止过耦合的设计已测试的代码更易于添加功能或修复BugTDD测试驱动开发策略选择单元测试框架单元测试命名《单元测试的艺术》书中推荐的测试命名规则项目:创建一个名为[ProjectUnderTest].UnitTests的测试项目。类: 创建一个名为[Classname]Tests的类。工作单元:对每个工作单元(一个方法,或者几个方法组成的一个逻辑组,或者及各类),创建一个如下命名的测试方法:[UnitOfWorkName][Scena原创 2021-02-04 20:42:23 · 80 阅读 · 0 评论 -
《C++ System Programming Cookbook》第二章读书笔记
第二章:C++重要知识点回顾C++ primitive types原生数据类型char, int, float, double, wchar_t, bool, void, nullptr_t可用numeraic_limits检查范围sizeof检查大小Byte数据类型可以有其它的修饰符singed, unsigned, long, short限定符:const, restrict存储类型:auto, static , extern, mutablerestrict限制poi原创 2021-02-04 20:40:02 · 655 阅读 · 0 评论 -
《Effective Modern C++》第3章学习记录2
Item10: Prefer scoped enums to unscoped enumsAs a general rule, declaring a name inside curly braces limits the visibility of that name to the scope defined by the braces.C++98-style enums: unscopedC++11 scoped enumsenum classesScoped enums have原创 2021-01-22 19:55:28 · 75 阅读 · 0 评论 -
《Effective Modern C++》第3章学习记录
Moving to Modern C++C++11 and C++14 big-name featuresauto , smart pointers, move semantics, lambdas, concurrencybraces vs parentheses of object creationalias declaration vs typedefsconstexpr vs constconst member functions and thread safetyItem7:原创 2021-01-22 16:18:41 · 95 阅读 · 0 评论 -
《Effective Modern C++》第1章学习记录
Deducing Types变化C++98只支持函数模板(function template)的类型推导C++11增加了auto 和decltypesC++14在C++11的基础上扩展了auto和decltype的适用范围好处在一处改变原类型,可自动推导出其它地方的类型特点大部分类型自动推导发生在函数模板调用上Item1: Understand template type deductionBad newsWhen the template type de原创 2021-01-22 09:31:43 · 101 阅读 · 0 评论 -
《Effective Modern C++》第0章学习记录
AcknowledgementC++0xC++11, C++14Usenet newsgroup comp.std.c++Stack OverflowOverview of the New C++Modern C++ DesignGoing nativedifferent blogsIntroductionauto declarationsrange-based for loopslambda expressionsrvalue referencesconcurrency原创 2021-01-20 23:29:03 · 119 阅读 · 0 评论 -
《Linux/Unix 系统编程手册》第六章阅读笔记
第六章 进程进程的定义从内核角度看,进程由用户内存空间(user-space memory)和一系列内核数据结构组成,其中用户内存空间包含了程序代码及代码所使用的变量,而内核数据结构则用于维护进程状态信息。记录在内核数据结构中的信息包括许多与进程相关的标志号(IDs),虚拟内存表,打开文件的描述符表,信号传递及处理的有关信息,进程资源使用及限制,当前工作目录和大量的其他信息。使用ps, top等命令可查看进程信息进程内存布局每个进程所分配的内存有很多部分组成,通常称之为“段(segm原创 2021-01-20 19:20:46 · 116 阅读 · 0 评论 -
《C++ System Programming Cookbook》第一章读书笔记
阅读书籍《C++ System Programming Cookbook》记录使用dockerlinux 用户管理常见命令adduser:创建用户login:用户登录passwd: 修改用户密码usermod -a -G:用户加入组userdel: 删除用户groups: 列举组ps aux:进程命令进程的task_struct结构定义在sched.h头文件中线程的定义在thread_info.h头文件中一个进程可以有多个线程Linux不区分进程和线程线程被当作轻量级原创 2021-01-19 21:01:01 · 289 阅读 · 0 评论 -
常用c库及其简单介绍
C标准库<assert.h>可用于验证程序做出的假设,并在假设为假时输出诊断消息<ctype.h>可用于测试和映射字符如数字,十六进制数字,小写字母,大写字母,字母,字母数字字符,标点符号字符,图形字符,空格字符,可打印字符,控制字符,空白字符,字母字符<errno.h>C 标准库的 errno.h 头文件定义了整数变量 errno,它是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。该宏扩展为类型为 int 的可更改转载 2020-12-13 23:36:17 · 3304 阅读 · 0 评论 -
c语言中typedef和define的区别
define是宏替换,编译后代码中不存在#define u8 uint_8 意味着程序中所有u8被替换为uint_8,在最终代码中根本不会存在u8这个符号,只有uint_8这个符号。typedef 是用来定义一种类型的新别名的,它不同于宏(#define),不是简单的字符串替换。它的新名字具有一定的封装性,所以新命名的标识符具有更易定义变量的功能,它是语言编译过程的一部分,但它并不实际分配内存空间。c语言中文网知乎提问...转载 2020-12-12 23:31:37 · 182 阅读 · 0 评论 -
linux下c/c++开发工具集
clang+llvm组合+lldb(debugger)代码补全vim+clang_completelinux开发花环境vimeclipsekscope/kate/kdevelopemacswin虚拟机+source insight编译环境统一配发的工具链,编译时使用chroot环境。编译环境统一版本控制svn/hg/git调试printf可以定制自己的宏实现分析标志,分级别,重定向到syslog,或者文件远程udp socket(日志输出)开发环境配.原创 2020-11-22 19:48:28 · 760 阅读 · 0 评论