01-C&C++
for c & c++
yagerfgcs
码代码十x载,一线带队十余载,现专注于音视频通信媒体处理方向
展开
-
代码规范:基于CLang-Format静态扫描实践总结
VS Code 配置CLang-format插件的方法安装插件首选项设置打开首选项-->Settings-->Workspace-->Extensions-->C++ 配置C_Cpp: Clang_format_path值为${workspace}/.clang-format (备注:决定格式化形式,若为file,则调用在workspace中的.clang-format) 配置C_Cpp: Clang_format_style值为null也可以打开vs的配置原创 2021-09-14 20:20:10 · 272 阅读 · 0 评论 -
c程序运行原理简介
Linux将虚拟存储器高端的1/4留给内核,剩下3/4全留给用户进程。虚拟存储器上中的程序主要由以下几个重要组成部分:1.进程控制块(process control block,简称PCB)PCB中保存了进程hello的运行时的存储器图像和寄存器信息,它帮助操作系统在内存中找到我们的hello程序,如果没有它,hello只是和其它程序杂乱无章地分布在内存中就乱套了。2.栈(stack)转载 2017-02-15 11:21:14 · 1091 阅读 · 0 评论 -
基础能力-加解锁
关于加解锁的两种实现方式方案一:使用C++11 atomic_flag原子特性实现细粒度加解锁#ifndef YAGER_MUTEX_H#define YAGER_MUTEX_H#include class CYagerMutex{public: CYagerMutex() : m_atomicFlag(ATOMIC_FLAG_INIT)原创 2017-06-08 11:44:03 · 568 阅读 · 0 评论 -
C++11使用make_shared的优势和劣势
Make_sharedWhy Make_shared ?C++11 中引入了智能指针, 同时还有一个模板函数 std::make_shared 可以返回一个指定类型的 std::shared_ptr, 那与std::shared_ptr 的构造函数相比它能给我们带来什么好处呢 ?优点效率更高shared_ptr 需要维护引用计数的信息,强引用, 用来记录当前转载 2017-06-06 19:26:11 · 37731 阅读 · 5 评论 -
Boost相关资料
Boost官网文档:http://www.boost.org/doc/libs/1_64_0/中文http://zh.highscore.de/cpp/boost/introduction.html原创 2017-05-10 15:16:26 · 506 阅读 · 0 评论 -
【C++11】lambda 表达式解析
C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看。本文作为 5 月的最后一篇博客,将介绍 C++11 的 lambda 表达式。很多语言都提供了 lambda 表达式,如 Python,Java 8。lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大量的小函数,而这些函数一般只被调用一转载 2017-03-17 11:13:02 · 311 阅读 · 0 评论 -
深入理解C++11:C++11新特性解析与应用
2.11模板函数的默认模板参数1、C++98中仅模板类支持默认参数,模板函数不支持默认参数,但C++11中模板类和模板函数均支持默认参数 2、模板类的默认参数,对C++98和C++11中,需遵循“从右往左”的规则指定。 3、模板函数的默认参数,则没有该限制3.1 继承构造函数在子类中使用该语法声明继承父类的哪些方法,而不必再写一遍沟通函数 using 父类::函数名;3.2 委派构造函数为了区原创 2017-03-22 13:57:57 · 2412 阅读 · 1 评论 -
主流编程语言的对比分析
最近做Android和IOS项目,由资深windows平台C++开发转型做移动平台,涉及到C++、Java、ObjectC三类语言的对比,总结沉淀下来(N年前做Java的时候就想干的事,现在总算动手了)继承 C++ Java ObjectC 多态 C++ Java ObjectC 重载 C++ Java ObjectC原创 2016-12-28 20:42:49 · 1323 阅读 · 0 评论 -
libuv-v1.9.0版本windows平台上的编译(生成visual studio能打开的工程)
一、配置环境windows 7 64位python-2.7.5.amd64.msinode-gyp-3.3.1软件可以到我的文件共享里下载。二、编译过程1、安装python2.7.5(3.4 没编译成功 不知道为什么),安装完后,设置下环境变量将python的安装目录添加到path路径下2、下载node-gyp-3.3.1,将里面的gyp拷贝到libuv-v1.9.原创 2016-11-03 21:33:02 · 1303 阅读 · 0 评论 -
Socket通信原理探讨(C++为例)
Socket通信原理探讨(C++为例) 一、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:1、消息传递(管道、FIFO、消息队列)2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)3、共享内存(匿名的和具名的)4、远程过程调用(Solaris门和Sun RPC) 但这转载 2016-08-23 17:53:17 · 780 阅读 · 0 评论 -
C++基础备忘
很多年没有关注C++本身了,最近几年一直做设计、搞流媒体。如今拾起来强化一下。1、const用法---摘自《Effective C++》char greeting[] = "Hello";char* p = greeting; const char* p = greeting; // non-const pointer, const datachar原创 2016-06-15 11:52:28 · 354 阅读 · 0 评论