
C/C++
文章平均质量分 90
kevin@1024
少壮不努力,老了还得做IT.
展开
-
C++代码风格规范
Introduction介绍以下是此代码惯例的重点:C++ Coding Style Guide Highlights但我们强烈建议大家阅读完整文档因为包含了很多有用的信息和例子。头文件通常,每个.c / .cpp文件都应该有一个关联的 .h文件。 有一些常见的例外,例如单元测试(unit tests)和只包含main()函数的小型 .c / .cpp文件。正确使用 header files 会对代码的可读性,大小和性能有所提升。以下规则将会指示使用 header files 的原创 2020-09-23 10:52:20 · 815 阅读 · 0 评论 -
C++基础(1) - 文件操作
Volatile是区分C程序员和嵌入式系统程序员最基本的问题。 嵌入式系统程序员经常同硬件、中断、RTOS等打交道,所有这些都要求volatile变量。不懂volatile很可能会带来灾难。volatile的作用作为指令关键字, 确保本条指令不会因编译器的优化而省略,要求每次直接读值.非常典型的就是寄存器的值可能被人为的从硬件上改变,所以必须要求每次直接读值。...原创 2017-09-13 14:22:14 · 3748 阅读 · 0 评论 -
C++基础(2) - 静态库与动态库
这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上...转载 2019-06-27 20:15:43 · 1157 阅读 · 0 评论 -
C++基础(3) - Singleton单例模式
C++ 单例模式总结与剖析 单例可能是最常用的简单的一种设计模式,实现方法多样,根据不同的需求有不同的写法; 同时单例也有其局限性,因此有很多人是反对使用单例的。本文对C++ 单例的常见写法进行了一个总结, 包括懒汉式、线程安全、单例模板等; 按照从简单到复杂,最终回归简单的的方式循序渐进地介绍,并且对各种实现方法的局限进行了简单的阐述,大量用到了C++ 11的特性如智能指针...转载 2019-11-16 15:09:00 · 1434 阅读 · 0 评论 -
C++基础(4) - 数组
1. Cpp中的数组C++支持数组数据结构,它可以存储一个固定大小的相同类型的元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,如a0,a1,a2,a3,a4...,a99,而是声明一个数组变量,比如as,然后使用as[0],as[1],as[2],...,as[99]来代表一个个单独的变量,数组的特定元素可以通过索引来访问。所数组都是由连续的内存位置组成,最低的地址对应第一个元素,最高的地址对应最后一...转载 2021-11-09 22:17:31 · 647 阅读 · 0 评论 -
C++基础(5) - 内存管理
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存泄漏、内存回收这三个方面来探讨C++内存管理问题。...转载 2021-11-11 23:48:43 · 447 阅读 · 0 评论 -
c++基础(6) - string
简介:string 是 C++ 中常用的一个类,它非常重要,我们有必要在此单独讲解一下。使用 string 类需要包含头文件<string>,下面的例子介绍了几种定义 string 变量(对象)的方法:#include<iostream>#include<string>using namespace std;int main(){ string s1; string s2 ="c plus plus";...原创 2021-11-15 21:53:29 · 1218 阅读 · 1 评论 -
C++11多线程mutex
mutex又称互斥量,用于提供对共享变量的互斥访问。C++11中mutex相关的类都在<mutex>头文件中。共四种互斥类:序号 名称 用途 1 std::mutex 最基本也是最常用的互斥类 2 std::recursive_mutex 同一线程内可递归(重入)的互斥类 3 std::timed_mutex 除具备mutex功能外,还提供了带时限请求锁定的能力 4 std::recursive_timed_mutex转载 2020-06-16 19:24:10 · 872 阅读 · 0 评论 -
C++ pthread 多线程
本节将详细介绍std::thread的用法。std::thread在<thread>头文件中声明,因此使用std::thread需包含<thread>头文件。<thread>头文件摘要<thread>头文件声明了 std::thread 线程类及std::swap(交换两个线程对象)辅助函数。另外命名空间std::this_thread也声明在<thread>头文件中。下面是 C++11 标...转载 2020-06-16 19:00:52 · 1752 阅读 · 0 评论 -
C++: 隐式类型转换和显式类型转换
第1部分.隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。intival=3;doubledval=3.14159;ival+dval;//ival被提升为double类型2)一种类型表达式赋值给另一种类型的对象:目标类型是...转载 2019-11-06 12:52:46 · 4699 阅读 · 0 评论 -
C++: vector的使用总结及常用操作
一、C++ vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分使用时需包含头文件:#include <vector>二、C++ vector类有两种使用方式:第一种:STL方式vector< string > text;1. 我们向 vector 中插入元素,而不再是索引元素,以及...转载 2019-11-05 10:21:31 · 427 阅读 · 0 评论 -
c语言 - 常用函数
stdlib.hint atoi(const char *str):转换为intlong int atol(const char *str):转换为long intdouble atof(const char *str):转换为doublevoid abort(void):终止一个程序int atexit(void (*func)(void)):当程序正常终止时,调用函数fun...原创 2019-08-08 17:14:06 · 363 阅读 · 0 评论 -
string、const char*、 char* 、char[]相互转换
string、const char*、 char* 、char[]四者类型经常会需要转化。一:转化总结形式如下:使用时,要对源格式和目标格式进行初始化。源格式赋值为具体的内容,目标格式赋值为空。 源格式 目标格式 string const char* char* char[...转载 2019-06-13 16:15:55 · 419 阅读 · 0 评论