C/C++
文章平均质量分 89
Frankie_He
这个作者很懒,什么都没留下…
展开
-
C中多个宏字符串拼接
之前在做两个字符串的拼接,一般都是用strcat函数, 即使是宏定义的字符串。比如定义了宏A, B, 第一反应会用 A"other"这样的拼接方式, 却不会没反应过来 A B 也可以做拼接。基础不扎实,好二好二。宏字符串可以这样拼接:#define A "xxx"#define B "yyy"void main(){ char *str = A B; ...转载 2020-03-02 10:25:19 · 9922 阅读 · 1 评论 -
空字符'\0'与字符串
from: https://blog.csdn.net/bairenxinmo/article/details/17662983空字符'\0'空字符即NUL字节,是一个ASCII值为0的控制字符,在程序代码中通常以转义序列'\0'表示,在C语言中,空字符非常重要,主要体现在字符串中。字符串字符串就是一串零个或多个字符,并且以bit模式为全0的NUL字节即空字符('\0')结尾。C语...转载 2018-08-02 14:40:32 · 16059 阅读 · 2 评论 -
protobuf 归纳
from: https://blog.csdn.net/mynameislu/article/details/78645880前言一什么是protobuf二简单使用示例三为什么使用protobuf四数据编码五反射机制六兼容性七结束语参考资料前言从去年新工作开始接触了protobuffer,参考当时的资料以及笔记,进行一下归纳。一、什么是protobufprotocol...转载 2018-12-20 14:47:50 · 1695 阅读 · 0 评论 -
C++11 auto类型说明符如for(atuo &x : s)
#include <bits/stdc++.h>个头文件包含C++以下头文件:#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#include <cmath>#include <deque>#转载 2019-01-07 17:34:51 · 5876 阅读 · 0 评论 -
智能指针原理及实现(1)shared_ptr
from:https://www.cnblogs.com/howo/p/8468713.html 0、异常安全C++没有内存回收机制,每次程序员new出来的对象需要手动delete,流程复杂时可能会漏掉delete,导致内存泄漏。于是C++引入智能指针,可用于动态资源管理,资源即对象的管理策略。使用 raw pointer 管理动态内存时,经常会遇到这样的问题:忘记delete...转载 2019-01-08 15:38:27 · 260 阅读 · 0 评论 -
C++ STL中的vector的内存分配与释放
from: https://www.cnblogs.com/biyeymyhjob/archive/2012/09/12/2674004.html1.vector的内存增长vector其中一个特点:内存空间只会增长,不会减小,援引C++ Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了...转载 2019-01-09 15:22:31 · 5046 阅读 · 1 评论 -
深入理解信号槽机制
原文不可考来源链接http://blog.csdn.net/liuuze5/article/details/53523463深入理解信号槽(一)这篇文章来自于 A Deeper Look at Signals and Slots,Scott Collins 2005.12.19。需要说明的是,我们这里所说的“信号槽”不仅仅是指 Qt 库里面的信号槽,而是站在一个全局的...转载 2019-04-04 17:27:36 · 14589 阅读 · 2 评论 -
C++中基类的析构函数为什么要用virtual虚析构函数
from :https://blog.csdn.net/iicy266/article/details/11906457知识背景 要弄明白这个问题,首先要了解下C++中的动态绑定。 关于动态绑定的讲解,请参阅: C++中的动态类型与动态绑定、虚函数、多态实现正题 直接的讲,C++中基类采用virtual虚析构函数是为了防止内...转载 2019-06-19 09:54:28 · 322 阅读 · 0 评论 -
C++中的动态类型与动态绑定、虚函数、运行时多态的实现
动态类型与静态类型静态类型是指不需要考虑表达式的执行期语义,仅分析程序文本而决定的表达式类型。静态类型仅依赖于包含表达式的程序文本的形式,而在程序运行时不会改变。通俗的讲,就是上下文无关,在编译时就可以确定其类型。动态类型是指由一个左值表达式表示的左值所引用的最终派生对象的类型。例:如果一个静态类型为“类 B ”的指针p 指向一个继承于 B的类 D 的...转载 2019-06-19 10:57:42 · 1038 阅读 · 0 评论 -
多线程编程——条件变量(Condition Variable)
from:https://www.jianshu.com/p/c1dfa1d40f53互斥锁std::mutex是一种最常见的线程间同步的手段,但是在有些情况下不太高效。假设想实现一个简单的 消费者 生产者 模型,一个线程往队列中放入数据,一个线程往队列中取数据,取数据前需要判断一下队列中确实有数据,由于这个队列是线程间共享的,所以,需要使用互斥锁进行保护,一个线程在往队列添加数据的时候,...转载 2019-09-17 09:57:40 · 329 阅读 · 0 评论 -
enable_shared_from_this的用处
来自Stackoverflow的回答,很清晰地讲解了enable_shared_from_this所解决的用其他方法无法解决的问题。https://stackoverflow.com/questions/712279/what-is-the-usefulness-of-enable-shared-from-thisfrom Dr Dobbs article on weak pointers...转载 2019-09-23 20:19:14 · 155 阅读 · 0 评论 -
结构体的嵌套问题
from:https://www.cnblogs.com/renyuan/archive/2012/11/30/2796792.html结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。结构体的相互引用(mutual reference),就是说在多个结构体中,都包含指向其他结构体的指针。1. 自引用结构体1.1 不使用typedef时...转载 2018-08-10 10:09:56 · 3150 阅读 · 0 评论 -
sizeof和strlen的区别
from: https://www.cnblogs.com/zlcxbb/p/5754557.htmlsizeof和strlen的区别 char str[20]="0123456789"; int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组...转载 2018-07-11 15:58:09 · 178 阅读 · 0 评论 -
unsigned char和signed char型变量的存储和表示
#include <stdio.h> int main(void) { signed char a = -1; unsigned char b = -1; printf("%%d:\n"); printf("%d\n", a); printf("%d\n", b); printf("\n%%u:\n");...转载 2018-07-09 15:06:25 · 5063 阅读 · 0 评论 -
C语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义
from:http://blog.csdn.net/edonlii/article/details/8497704C语言可变参简介 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如...转载 2018-02-23 17:11:39 · 154 阅读 · 0 评论 -
在8位二进制中,-128 没有原码、反码形式
在8位二进制中,-128 没有原码、反码形式,那么它的补码是怎么计算出来的?还是约定的?作者:Simon Cao链接:https://www.zhihu.com/question/20458542/answer/40759880来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。约定个屁!要说清这个问题,需要颠覆你对补码的理解第一步,就像练北冥神功要先散功一样,先把你心中...转载 2017-10-17 08:55:54 · 3866 阅读 · 1 评论 -
C++ this指针详解
from:http://c.biancheng.net/cpp/biancheng/view/201.htmlthis 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。下面是使用 this 的一个完整示例:#include &l...转载 2018-04-20 11:20:14 · 138 阅读 · 0 评论 -
C语言实现面向对象
from : https://blog.csdn.net/vic_chang/article/details/8457800C语言是面向过程的语言,可以用来实现面向对象么?答案是肯定的。面向对象的本质是一种设计思想,与具体的语言没有多大的关系。C语言不是面向对象语言却也可以用来实现面向对象思想的。有人会觉得用C实现面向对象,充其量是模拟面向对象的语法,而不是像C++那样真的面向对象的。这也算是不太...转载 2018-05-10 08:57:46 · 7229 阅读 · 0 评论 -
C语言 sizeof函数详解
from:https://blog.csdn.net/wzy198852/article/details/7246836sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然...转载 2018-05-17 10:10:26 · 50229 阅读 · 8 评论 -
函数返回局部变量
from:http://blog.chinaunix.net/uid-15014334-id-3533931.html一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内...转载 2018-04-27 16:08:46 · 392 阅读 · 0 评论 -
字符串常量到底存放在哪个存储区
from: https://blog.csdn.net/daiyutage/article/details/8605580字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char *pstr="hello world!";这里,"hello world!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间...转载 2018-04-28 10:05:20 · 12276 阅读 · 1 评论 -
C程序怎样组织更有结构性
from: http://blog.chinaunix.net/uid-23481299-id-3124965.html在C语言的应用领域,如通讯领域和嵌入式系统领域,一个的软件项目通常包含很多复杂的功能,实现这个项目不 是一个程序员单枪匹马可以胜任的,往往需要一个团队的有效合作,另外,在一个以C代码为主的完整的项目中,经常也需要加入一些其他语言的代码,例如,C代 码和汇编代码的混合使用,C文件...转载 2018-05-07 16:04:19 · 756 阅读 · 0 评论 -
C/C++刁钻问题各个击破之细说sizeof
C/C++刁钻问题各个击破之细说sizeof 摘要:Sizeof的作用非常简单:求对象或者类型的大小。然而sizeof又非常复杂,它涉及到很多特殊情况,本篇把这些情况分门别类,总结出了sizeof的10个特性:(0)sizeof是运算符,不是函数;(1)sizeof不能求得void类型的长度;(2)sizeof能求得void类型的指针的长度;(3)sizeof能求得静态分配内存的数组的长度!(...转载 2018-05-22 16:44:50 · 191 阅读 · 0 评论 -
Linux双向循环链表的实现
from: https://blog.csdn.net/yaozhenguo2006/article/details/7621551链表是一种重要的数据结构,应用的非常广泛。链表分为单向链表与双向链表,一般的实现就是在结构体中内嵌指向下一个元素的指针。例如:[cpp] view plain copystruct name { int num; ...; struct ...转载 2018-05-23 17:37:48 · 577 阅读 · 0 评论 -
C/C++语言结构体中定义另一个结构体指针的经验
from:https://www.cnblogs.com/Older-Driver-of-Newer/p/6497612.htmlC/C++语言结构体中定义另一个结构体指针的经验本文进行讨论的是,在Linux中,C/C++语言的结构体的使用情况。一般情况下,结构体的使用还是相对比较简单的,它携带的一类物体的某一些属性,比如123456struct person{ int age; int ...转载 2018-04-07 19:42:00 · 2347 阅读 · 0 评论