宏定义中的##操作符和... and _ _VA_ARGS_ _
摘要:1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operator, the ## operator can be used in the replacement section of a function-like macro
阅读全文
posted @
2016-10-20 15:43
莫水千流
阅读(1200)
推荐(0) 编辑
__VA_ARGS__用法(转)
摘要:自定义调试信息的输出 调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等... 使用标准的方法打印调试信息有时候不是很方便,
阅读全文
posted @
2016-10-20 15:28
莫水千流
阅读(7205)
推荐(0) 编辑
windows下boost库的基本使用方法
摘要:因为boost都是使用模板的技术,所以所有代码都是写在一个.hpp头文件中。这样boost中的大部分内容是不需要编译生成相应的链接库,只需要设置下面的包含目录(或者设置一下环境变量),在源文件中包含相应的头文件就可以使用了。少部分库需要生成链接库来使用。 下面介绍完整安装boost库的方法: 1、首
阅读全文
posted @
2016-10-19 17:27
莫水千流
阅读(4638)
推荐(0) 编辑
C++命名空间 namespace的作用和使用解析
摘要:一、 为什么需要命名空间(问题提出) 在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。 例:如果在文件中定义了两个类,在这两个类中可以有同名的函数。在引用时,为了区
阅读全文
posted @
2016-10-18 10:47
莫水千流
阅读(116867)
推荐(9) 编辑
C#托管代码与C++非托管代码互相调用
摘要:http://www.cnblogs.com/Jianchidaodi/archive/2009/03/11/1407270.html#1473515 http://www.cnblogs.com/Jianchidaodi/archive/2009/03/11/1408661.html C#托管代码
阅读全文
posted @
2016-09-29 19:52
莫水千流
阅读(6063)
推荐(1) 编辑
C++ 类的动态组件化技术
摘要:序言: N年前,我们曾在软件开发上出现了这样的困惑,用VC开发COM组件过于复杂,用VB开发COM组件发现效率低,而且不能实现面向对象的很多特性,例如,继承,多态等。更况且如何快速封装利用历史遗留的大量C++代码本身就是一个大的难题。 当时,开发小组的成员通过共同努力,摸索了一套C++类的动态组件化
阅读全文
posted @
2016-09-29 07:07
莫水千流
阅读(4858)
推荐(0) 编辑
值得推荐的C/C++框架和库 (真的很强大)
摘要:值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简
阅读全文
posted @
2016-09-28 23:05
莫水千流
阅读(13375)
推荐(1) 编辑
工厂对象模式简介
摘要:工厂对象模式简介 在GoF的《设计模式》一书中,对Factory Method/Object Method 意图描述如下: 定义一个用于创建对象的接口,让子类决定实例化是哪一个类。 Factory Metho是一个类的实例化延迟到其子类。 其结构图如下: 其中, 类 Product 定义了一类对象的
阅读全文
posted @
2016-09-27 11:48
莫水千流
阅读(1763)
推荐(0) 编辑
C和C++混合编程
摘要:extern "C"表示编译生成的内部符号名使用C约定。C++支持函数重载,而C不支持,两者的编译规则也不一样。函数被C++编译后在符号库中的名字与C语言的不 同。例如,假设某个函数的原型为:void foo( int x, int y ); 该函数被C编译器编译后在符号库中的名字可能为_foo,而
阅读全文
posted @
2016-09-23 06:35
莫水千流
阅读(2197)
推荐(0) 编辑
Google glog 使用
摘要:Google glog 使用 1 简介 1 简介 Googleglog 库实现了应用级的日志记录,提供了C++ 风格的流操作和各种助手宏。 代码示例: #include <glog/logging.h> int _tmain(int argc,_TCHAR* argv[]) { google::In
阅读全文
posted @
2016-09-19 11:45
莫水千流
阅读(31517)
推荐(2) 编辑
VALGRIND
摘要:系统编程中一个重要的方面就是有效地处理与内存相关的问题。你的工作越接近系统,你就需要面对越多的内存问题。有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦。所以,在实践中会用到很多工具来调试内存问题。 在本文中,我们将讨论最流行的开源内存管理框架 VALGRIND。 摘自 Valgri
阅读全文
posted @
2016-09-08 10:28
莫水千流
阅读(636)
推荐(0) 编辑
c fopen文件读写
摘要:fopen <cstdio> FILE * fopen ( const char * filename, const char * mode ); Open file Opens the file whose name is specified in the parameter filename a
阅读全文
posted @
2016-09-08 08:38
莫水千流
阅读(4604)
推荐(0) 编辑
c++ comment
摘要:一、匈牙利命名法【Hungarian】: 广泛应用于象 Microsoft Windows 这样的环境中。 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一 位能干的 Microsoft 程序员查尔斯· 西蒙尼(Charles Simonyi) 提出的。 匈牙利
阅读全文
posted @
2016-08-30 21:29
莫水千流
阅读(1342)
推荐(0) 编辑
C语言:宽字符集操作函数
摘要:C语言:宽字符集操作函数 (unicode编码) 字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit(
阅读全文
posted @
2016-08-27 17:43
莫水千流
阅读(607)
推荐(0) 编辑
Google的C++开源代码项目
摘要:Google的C++开源代码项目 v8 - V8 JavaScript Engine V8 是 Google 的开源 JavaScript 引擎。 V8 采用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用。 V8 根据 ECMA-262 第三版中的说明使用 ECMAScri
阅读全文
posted @
2016-08-27 10:55
莫水千流
阅读(3516)
推荐(2) 编辑
boost/config.hpp文件详解
摘要:简要概述 今天突发奇想想看一下boost/config.hpp的内部实现,以及他有哪些功能。 这个头文件都有一个类似的结构,先包含一个头文件,假设为头文件1,然后包含这个头文 件中定义的宏。对于头文件中1中,有大量的#if..#endif,在这些指定的宏块中定义一个头文件宏,在这些大量的#if...
阅读全文
posted @
2016-08-25 21:33
莫水千流
阅读(4191)
推荐(0) 编辑
静态和动态链接
摘要:引言即使是最简单的HelloWorld的程序,它也要依赖于别人已经写好的成熟的软件库,这就是引出了一个问题,我们写的代码怎么和别人写的库集成在一起,也就是链接所要解决的问题。首先看HelloWorld这个例子:[cpp] view plain copy 1. // main.c 2. 1 #incl
阅读全文
posted @
2016-07-24 10:04
莫水千流
阅读(380)
推荐(0) 编辑
MFC
摘要:Win32程序 消息队列 系统消息队列,窗口消息队列 主要函数 WinMain 函数 int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPCSTR lpCmdLine, int nCmdShow) { MSG ms
阅读全文
posted @
2016-07-17 15:55
莫水千流
阅读(445)
推荐(0) 编辑
C++中的void类型
摘要:Technorati 标签: void,指针 1.1. void类型 void类型其实是一种用于语法性的类型,而不是数据类型,主要用于作为函数的参数或返回值,或者定义void指针,表示一种未知类型。 1.1.1. 作为函数参数与返回值 void func( void ); void func( );
阅读全文
posted @
2016-04-21 14:20
莫水千流
阅读(17682)
推荐(0) 编辑