![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
ywy2090
这个作者很懒,什么都没留下…
展开
-
环形缓冲区的c实现
//头文件#ifndef __XBUF_H__#define __XBUF_H__#define XBUFDEFAULTSIZE (1024*1024) //缓冲区默认大小 typedef unsigned int uint32; //!创建一个环形缓冲区 size为缓冲区大小 void *x_buf_create(uint32 size);原创 2013-09-07 21:40:32 · 892 阅读 · 0 评论 -
__GUNC__宏定义
Common Predefined MacrosThe common predefined macros are GNU C extensions. They are availablewith the same meanings regardless of the machine or operating system onwhich you are using GNU C. Their n原创 2014-11-03 13:59:03 · 3045 阅读 · 0 评论 -
c/c++可变宏定义
c99支持了可变参数的宏.使用宏的时候,参数如果不写,宏里用 #,## 这样的东西会扩展成空串。example:#include#define log(fmt, ...) do{ fprintf(stdout,fmt,##__VA_ARGS__); }while(0);int main(){ log("aaaaaaaaaaaaaaa\n"); log("a = %d原创 2015-08-30 22:38:29 · 380 阅读 · 0 评论 -
字节对齐算法
字节对齐是在分配内存时需要考虑的问题.正常人类算法:unsigned int calc_align(unsigned int n,unsigned align){ if ( n / align * align == n) return n; return (n / align + 1) * align;}非正常人类算法:其一转载 2015-08-31 18:14:29 · 569 阅读 · 0 评论 -
技巧:在 C/C++中如何构造通用的对象链表
说明 本文转自 : http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip02/index.html 点击原文地址虚拟链表和类链表可以很好地实现这一点您是否做过这样一个项目,它要求您在内存中保存数目不定的若干不同对象?对于某些情况,二叉树是最佳选择,但在通常情况下,更简单的链表是显而易见的选择。转载 2015-08-19 11:14:53 · 438 阅读 · 0 评论 -
c++ std::getline
c++ std:getline翻译 2015-09-05 19:31:03 · 900 阅读 · 0 评论 -
c++11 单例模式
#ifndef __SINGLETON_H__#define __SINGLETON_H__#include #include #include #include templateclass Singleton{public: Singleton() = default; ~Singleton() = default; Singleton(const Singleton原创 2015-12-01 00:37:55 · 567 阅读 · 0 评论 -
无符号整形压缩与解压缩的一种实现
无符号整形的压缩与解压缩算法。今天浏览公司的私有协议的实现,在将数据序列化的代码中发现对无符号整形做了一些特殊的处理,了解下才发现是无符号整形压缩跟解压缩算法的一种。于是上网了解了下相关的内容,记录下。对于无符号整形数字,在其二进制形式上可以将其分为两部分,实际能够表示其大小以及填充的零部分. 举几个例子。 uint32_t原创 2015-12-26 20:41:39 · 756 阅读 · 0 评论 -
VS2013中如何将代码自动保存为UTF8格式
原文来自百度经验 点击打开链接在利用VS2013在编写代码时,源代码会自动编码为GBK字符集,GBK可以识别中文,但是在英文编译环境下GBK则会显示成乱码。这时我们需要把GBK字符集转换为另一种国际通用字符集,即UTF8国际编码字符集。这样在编译中遇到中文字符时就不会出现乱码现象了。方法/步骤1. 如果不将字符集更改为UTF-8格式,就会出现如下形式的乱码。 2. 下转载 2016-01-28 09:11:58 · 5538 阅读 · 0 评论 -
c++11 chrono应用 - 一个超时timer的实现
c++11中的一个超时的timer的实现,在一些程序测试中比较有用。#ifndef __TIMEWATCHER_H__#define __TIMEWATCHER_H__#include templateclass TimeWatcher{public: TimeWatcher(unsigned int timeout = 3) :_time_out(timeout) {} ~原创 2016-02-16 12:08:05 · 3902 阅读 · 0 评论 -
gdb调试技巧总结
将遇到的gdb调试的技巧慢慢总结下。1. gdb 调试程序设置参数set args 可以在gdb调试时指定运行时的参数.show args 命令可以查看设置好的运行参数.#include int main(int argc, char *argv[]){printf("argc = %d\n", argc);for (int i = 0;i原创 2016-03-14 10:43:41 · 512 阅读 · 0 评论 -
c++primer笔记之数组与指针的一些总结
关于数组与指针的一些总结。数组的定义方式:类型 数组名[维度];eg: int a[10] , int b[10][10][10]; //注意: 1.数组的维度也是数组类型的一部分。 eg: int a[10]; 数组a的类型为int[10]; int b[10][10][10] 数组b的类型为int[10][10][10];原创 2017-01-19 15:47:14 · 459 阅读 · 0 评论 -
c/c++函数 -strtol strtoll strtoul strtoull 使用注意项cc
strtol strtoll strtoul strtoull 使用注意项原创 2017-03-22 14:24:09 · 22102 阅读 · 0 评论 -
深入分析为Visual Assist设置快捷键的方法
Visual Assist(以下称VA)是一款非常棒的Visual Studio插件工具,特别是在VS2005中,提供了很多很好用的辅助功能。如下图的“Create Implementation”,就很方便。 但是每次都要点鼠标,是不是太烦呢? 如果能设置一个快捷键就好了。探索了一番, 找到了设置快捷键的方法,分享给大家。方法如下:Visual Studio 的转载 2015-01-14 14:01:38 · 506 阅读 · 0 评论 -
c++ 一个简单的allocator
#include #include #include #ifndef NULL#define NULL 0#endif//!内存分配.封装operator new函数template T *allocate(size_t n,T*){ T *tmp = (T*) operator new(n * sizeof(T)); if (tmp == NULL) { fpri原创 2014-12-06 15:10:53 · 539 阅读 · 0 评论 -
log4cplus的一个常用封装实例
、、VLog.h#pragma once#ifndef VLOG_H#define VLOG_H#include #include #include #include #include #include using namespace log4cplus;using namespace helpers;/** * 使用log4cplus * @param lo转载 2013-11-09 21:50:03 · 4087 阅读 · 0 评论 -
C++ 字符串操作经验集
1. 字符类型和字符串 lchar,wchar_t,CHAR,BYTE,UCHAR,WCHAR,TCHAR,TBYTE char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。wchar_t是char的Unicode版本。相当于unsigned short。一般两个字节。CHAR 和WCHAR分别是char和wchar_t的别名,决不会等同。转载 2014-04-28 14:25:07 · 624 阅读 · 0 评论 -
宏定义中使用do{}while(0)的好处
#define MACRO_NAME(para) do{macro content}while(0) 的格式,总结了以下几个原因: 1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在判断语句过后的宏,这样可以保证作为一个整体来是实现:转载 2014-09-24 19:25:43 · 389 阅读 · 0 评论 -
c/c++预处理
C语言与C++中中编译预处理的学习记录:首先三种形式的命令:宏定义,文件包含,条件编译命令。1、宏定义主要是:#define,#undef如下:#define PI 3.1415926 /*不带参数的宏定义*/#define Max(a,b) a>b?a:b /*带参数的宏定义*/说明:宏定义在C转载 2014-10-29 19:10:55 · 504 阅读 · 0 评论 -
C++ STL中哈希表 hash_map介绍
用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰"的信息,最傻的方法就是取得所有的记录,然后按照转载 2014-11-04 19:41:44 · 406 阅读 · 0 评论 -
一个简单的linux的测试修改模板
//一个简单的linux的测试用例模板//编译命令 : g++ -o1 -g simple_test_template.cpp -lpthread -o simple_test.exe //标准c头文件#include #include #include #include #include #include //linux下头文件#include #include #i原创 2017-03-23 10:35:29 · 453 阅读 · 0 评论