DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  C++/C

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 47 下一页

摘要:一、前言 写一个用到指针的程序时,被拷贝、赋值、析构函数坑了一波,网上查相关博客,发现关于拷贝、赋值构造函数调用时机大多都有错误,因此决定自己总结撸一发博客。 A (A& a); //拷贝构造函数 A (const A& a); //拷贝构造函数 A& operator= (const A& a); 阅读全文
posted @ 2022-01-20 18:07 DoubleLi 阅读(238) 评论(0) 推荐(0) 编辑

摘要:第一章 必知必会 1.1 RAII 先分配资源,再操作,任意一步出错需要回收资源。 避免冗余代码方式: goto语句(不推荐) do...while(0)循环(现有代码中大量存在) RAII(推荐) 在构造函数中申请资源,在析构中释放。对于多线程中锁的获取与释放,可充分利用器特性,避免每次返回都需要 阅读全文
posted @ 2022-01-19 10:19 DoubleLi 阅读(259) 评论(0) 推荐(0) 编辑

摘要:A coroutine is a function that can suspend execution to be resumed later. 协程不是系统级线程,很多时候协程被称为“轻量级线程”、“微线程”、“纤程(fiber)”等。简单来说可以认为协程是线程里不同的函数,这些函数之间可以相互 阅读全文
posted @ 2021-12-29 15:21 DoubleLi 阅读(28841) 评论(1) 推荐(5) 编辑

摘要:C++ 拷贝构造函数 赋值构造函数 拷贝构造函数和赋值构造函数的异同由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。请先记住以下的警告,在阅读正文时就会多心:如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数。倘若类中含有指针变量,那 阅读全文
posted @ 2021-12-09 15:38 DoubleLi 阅读(346) 评论(0) 推荐(1) 编辑

摘要:一般会产生临时对象的三种情况: 1,以值的方式给函数传参; 2,类型转换; 3,函数需要返回一个对象时; 我们知道给函数传参有两种方式。1,按值传递;2,按引用传递(指针chua)。按值传递时,首先将需要传给函数的参数,调用拷贝构造函数创建一个副本,所有在函数里的操作都是针对这个副本的,也正是因为这 阅读全文
posted @ 2021-12-09 15:36 DoubleLi 阅读(149) 评论(0) 推荐(0) 编辑

摘要:本文实例讲述了C++实现string存取二进制数据的方法,分享给大家供大家参考。具体方法分析如下:一般来说,STL的string很强大,用起来也感觉很舒服,这段时间在代码中涉及到了用string存取二进制数据的问题,这里记录一下,以供以后参考。首先提一下STL中string的参考资料:http:// 阅读全文
posted @ 2021-11-26 16:41 DoubleLi 阅读(930) 评论(0) 推荐(0) 编辑

摘要:最近需要在AWSIOT shadow添加设备状态,很明显JSON这种数据状态很明显每个状态都是Key-Value这种数据类型,很自然的想到使用MAP去实现这种状态。而代码又是跑在嵌入式设备中很明显是C语言,这里就带来一个问题,C语言原生是没有MAP实现的。作为生产环境使用,自己手搓轮子难免有考虑不周 阅读全文
posted @ 2021-11-17 11:13 DoubleLi 阅读(964) 评论(0) 推荐(0) 编辑

摘要:1、system(执行shell 命令)相关函数:fork,execve,waitpid,popen表头文件:#include<stdlib.h>函数原型:int system(const char * string);函数说明 :system()会调用fork()产生子进程,由子进程来调用/bin 阅读全文
posted @ 2021-11-16 17:07 DoubleLi 阅读(842) 评论(0) 推荐(0) 编辑

摘要:在linux系统下,用C++程序执行shell命令有多种方式 管道方式 #include <iostream>#include <unistd.h>#include <sys/types.h> int main(){ FILE *pp = popen("cd /xxxx && ls -l", "r" 阅读全文
posted @ 2021-11-16 17:06 DoubleLi 阅读(1589) 评论(0) 推荐(0) 编辑

摘要:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上 阅读全文
posted @ 2021-11-16 15:31 DoubleLi 阅读(121) 评论(0) 推荐(0) 编辑

摘要:1. append函数 常用的函数原型: basic_string &append( const basic_string &str ); basic_string &append( const char *str ); basic_string &append( const basic_strin 阅读全文
posted @ 2021-11-16 15:13 DoubleLi 阅读(859) 评论(0) 推荐(0) 编辑

摘要:编译程序时,编译器报错error: jump to case label [-fpermissive] , error: crosses initialization of 'xxxx',对相关内容进行简单的梳理 一、问题代码 int main() { int test = 2; switch(te 阅读全文
posted @ 2021-11-15 17:55 DoubleLi 阅读(1933) 评论(0) 推荐(0) 编辑

摘要:1. 简介: Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。 使用 inotify 很简单:创建一个文件描述符,附加一个或多个监视器(一个监视器 是一个路径和一组事件),然后 阅读全文
posted @ 2021-10-28 11:56 DoubleLi 阅读(498) 评论(0) 推荐(0) 编辑

摘要:一、引言当我们在 C++ 中直接像 C 那样使用类的成员函数指针时,通常会报错,提示你不能使用非静态的函数指针: reference to non-static member function must be called 两个解决方法: 把非静态的成员方法改成静态的成员方法正确的使用类成员函数指针 阅读全文
posted @ 2021-10-20 10:37 DoubleLi 阅读(1493) 评论(0) 推荐(0) 编辑

摘要:DLOPEN DLMOPEN DLCLOSE NAME dlclose, dlopen, dlmopen - 打开/关闭共享对象 SYNOPSIS #include <dlfcn.h> void *dlopen(const char *filename, int flags); int dlclos 阅读全文
posted @ 2021-10-18 17:15 DoubleLi 阅读(520) 评论(0) 推荐(0) 编辑

摘要:一、三种库函数的链接方式用过C语言的都知道库函数的重要:我们将功能比较独立的部分做成一个个函数,供我们复用。最终对库函数的引用有3种方式: 方式 链接时刻 库指定时刻 特点静态链接 编译时 编译时 编译时检查链接错误,编入运行程序(运行程序独立)动态链接 运行时 编译时检查链接错误,运行时调入依赖库 阅读全文
posted @ 2021-10-09 17:48 DoubleLi 阅读(460) 评论(0) 推荐(0) 编辑

摘要:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上 阅读全文
posted @ 2021-09-09 15:41 DoubleLi 阅读(168) 评论(0) 推荐(0) 编辑

摘要:函数功能: 打开一个文件 函数原型:FILE * fopen(const char * path,const char * mode); 相关函数:open,fclose,fopen_s,_wfopen 所需库: <stdio.h> 返回值: 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打 阅读全文
posted @ 2021-07-29 11:07 DoubleLi 阅读(842) 评论(0) 推荐(0) 编辑

摘要:This post was updated on December 11, 2020 Visual Studio 2017 introduced the Linux Development with C++ workload. We generally recommend Visual Studio 阅读全文
posted @ 2021-05-20 18:32 DoubleLi 阅读(264) 评论(0) 推荐(0) 编辑

摘要:将信号量sem_t相关的一组API封装成Win32平台上的事件对象类之后,在Linux平台上就可以像使用事件对象那样,方便地进行线程同步了。 class CEventImpl { protected: /* 创建匿名信号量 `bAutoReset true 人工重置 false 自动重置 */ CE 阅读全文
posted @ 2021-05-08 16:05 DoubleLi 阅读(169) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 47 下一页