c/c++
文章平均质量分 54
cwq水域
这个作者很懒,什么都没留下…
展开
-
错误码与错误字符串转换 宏定义 枚举与查找
错误码与错误字符串转换 宏定义 枚举与查找直接上例子,优雅实现const char * p = get_msg_str(E_THIRD);enum e_type{ E_E, E_FIRST, E_SECOND, E_THIRD, };#define CODE_MSG(XX) \ XX(E_FIRST, "the first") \ XX(E_SECOND, "the second") \ XX(E_THIRD, "the third") \#define GET_MSG原创 2021-10-04 16:14:15 · 284 阅读 · 0 评论 -
C++多线程:thread、atomic及mutex
本文引自 yucicheung的 C++多线程初探:thread、atomic及mutex的配合使用 如有侵权请告知不同OS下的多线程方案线程相关的一些概念的说明进程与线程的关系线程的同步与线程安全举个在多线程环境中公共变量访问出错的例子C++中的解决办法join及detach 参考资料不同OS下的多线程方案C/C++的多线程编程在啊不同操作系统下有不同函数库可以进行调用,在Linux平台下,POSIX多线程库是,在windows平台下,有windows API或MFC库(VC对WIN3转载 2020-08-14 10:40:11 · 383 阅读 · 0 评论 -
vld 使用
http://vld.codeplex.com/documentation最近发现用vs2013,vld的版本是2.3,发现 检测不了Visual Leak Detector Version 2.3 installed.No memory leaks detected.Visual Leak Detector is now exiting.网上也已经证实了这个bug,于原创 2015-01-25 23:34:23 · 1669 阅读 · 0 评论 -
参数没有用到,消除警告
1、可以在函数中做文章 void DoSome(int a)翻译 2014-07-09 23:12:20 · 1307 阅读 · 0 评论 -
计算数组的长度
在chromium中有计算数组长度的宏 arraysizetemplate char (&ArraySizeHelper(T (&array)[N]))[N];// That gcc wants both of these prototypes seems mysterious. VC, for// its part, can't decide which to use (anothe原创 2015-04-29 23:53:52 · 943 阅读 · 0 评论 -
宽字符和多字节(窄字符)转换
string strNarrow(const wstring& wstr){ int len = WideCharToMultiByte(C);}转载 2014-11-01 17:54:30 · 640 阅读 · 0 评论 -
数据放置的位置
.bbs段:未初始化的全局变量; int g_bss[1024]; 这个大小没有反应在最后exe的大小上,它只占运行内存空间,不占用文件空间。.data段:初始化过的全局变量;.rodata段:常量数据;的rodata直接和指令编码一起,故存放在代码段中;字符串常量,编译器会自动删除重复的字符串,保证在exe只有一个副本;嵌入式系统中,rodata放在ROM & n翻译 2016-02-21 11:37:47 · 510 阅读 · 0 评论 -
c-log windows
搞一个日志库,找了资料发现 很多都是在unix环境下运行,要么就是这库比较大, AderStep的 http://blog.csdn.net/gatieme/article/details/50603682 有详细的比较了几个日志库,有兴趣可以看下。 就想来了轻量级的吧,看了下发现c-log ,,简单呗。/////////////////////////////////////////////原创 2016-08-21 16:31:27 · 1395 阅读 · 0 评论 -
c/c++ 静态断言 static_assert
静态断言即,在编译时期就能发现问题所在,而不用等到运行时期(因为有些时候并不是所有断言 一次就能运行出来)c++ 11 & BOOST 库 有类似的方法。这里搞一个简单的 自检方式/*除零异常方式*/#define my_assert_static(e) do { enum { my_assert_static__ = 1/int(e)}; } while (0)/*测试*/void tes原创 2016-09-21 22:46:51 · 1350 阅读 · 0 评论 -
Cocos2d-x v3.x官方文档】序列帧动画
简介Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果。动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。 我们使用Animation类描述一个动画,而精灵显示动画的动作则是一个Animate对象。动画动作Animate是精灵显示动画的动作,它由一个动转载 2017-12-08 15:51:55 · 327 阅读 · 1 评论 -
使用函数对象代替函数作算法的 参数
大部分编译器不会试图去内联 通过函数指针调用的函数,甚至,正如本例中,那个函数已经声明为 inline而且这个优化看起来很直接。为什么不?可能因为编译器厂商 从来没有觉得值得实现这个优化。你得稍微同情一下编译器厂商。他 们有很多需求,而他们不能做每一件事。你的需要并不能让他们实现 那个优化把函数指针作为参数会抑制内联的事实解释了一个长期使用C的程序 员经常发现却难以相信的现象:在速度上,C转载 2015-02-09 22:13:02 · 480 阅读 · 0 评论 -
vsvim 命令
移动光标类命令支持:h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k:光标上移一行 j:光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾nG:光标移至第n行首 (会多移一转载 2015-02-01 19:43:32 · 1228 阅读 · 0 评论 -
获取结构体/类 中成员偏移, 另类获取私有成员
1、获取结构体/类 中成员偏移简单的方法是将 0 作为结构体或者类 (以下 同称为类)的地址,然后指向成员的地址就可以了;eg: struct CT{int m_a;int m_b;}; int offset = (int)&( (CT*)0)->a); /// 同理 int offset_b = (int ) & (((CT*)0)->b);翻译 2014-03-21 14:13:09 · 780 阅读 · 0 评论 -
c/c++ 字符串 ## 和 #
1、目前大部分使用的是unicode(win9x只支持asci)原创 2014-07-01 00:19:08 · 601 阅读 · 0 评论 -
字符串赋值
char *p1 = "123";const char*p2 = "1234";p2 = p1; ///原创 2014-07-22 22:27:34 · 546 阅读 · 0 评论 -
二维数组
1、二维数组的参数传递原创 2014-07-27 21:05:54 · 459 阅读 · 0 评论 -
函数指针和函数数组指针
1、函数指针2、函数指针数据原创 2014-07-27 00:16:54 · 518 阅读 · 0 评论 -
win 线程生亡
特别声明:本文转自Windows线程生灭 (二)上节中介绍了几种Windows平台创建及删除线程的api及它们的差别,这节具体介绍以下信息:1.线程内核对象(操作系统接口CreateThread内部实现)2.线程数据块_tiddata(C/C++运行时库的实现 _beginthreadex与_beginthread)3.线程结束_endthreadex下转载 2014-07-30 00:33:20 · 821 阅读 · 0 评论 -
函数 参数的布局
问题:很多函数都是需要有返回值的。现象:比较常见d原创 2014-11-04 22:07:16 · 459 阅读 · 0 评论 -
Windows的程序性能分析和函数呼叫列表工具LTProf (Call Graph at Runtime)
下载地址:http://www.lw-tech.com/转载请注明出处:http://blog.csdn.net/horkychen GNU有一个强大的性能分析工具gprof,同时可以输出程序调用顺序。今天发现Windows下也有一个: LTProf www.lw-tech.com它是使用Windows下的dbghelp.dll (CaptureStackBackTrace)转载 2015-01-26 23:23:02 · 505 阅读 · 0 评论 -
c++ 函数 const 修饰
1、今天在写函数的时候 习惯性的在函数后面添加const修饰,编译的结果为: error C2270: 'FunCmp' : modifiers not allowed on nonmember functions突然有点怪,但是理解了这个就不会了,首先 const 修饰函数,是修饰成员函数, 此时的作用是防止一些误操作 修改 本为只读的 函数,从而操作系统(程序)的意外情况;原创 2015-02-01 00:12:27 · 501 阅读 · 0 评论 -
c++ 模板的一些
stl中大量的运用了模板;今天就拿stl 的容器和一些相关的操作来说明下;std::set1、 添加自定义比较操作templatestruct LessCmp { bool operator() (const T lhs, const T rhs) const { return lhs < rhs; }};std::set> ms;2、循环遍历, 这原创 2015-02-01 00:22:38 · 397 阅读 · 0 评论 -
new、palcement new、operator new
1、new是最常用的分配空间的,原创 2014-05-02 16:54:47 · 603 阅读 · 0 评论