C/C++
文章平均质量分 81
xugang_2001
这个作者很懒,什么都没留下…
展开
-
C++ Operator Precedence and Associativity
今天碰到一个简单问题,int *p; *p++,这句是先取*p然后p++,这里面包含了一个运算符优先级的概念,++的优先级是高于*号的,所以先进行++运算然后取*p,但是因为++在后面是先取p后++,所以先*p再++的。即*p然后p++。运算符优先级在此类连写的时候很重要,没有把握还是多加几个括号吧:),这里把MSDN上面的相关知识贴出来以后忘了也好过来看看。C++ Operator Pr原创 2007-08-14 11:39:00 · 450 阅读 · 0 评论 -
BT种子文件格式和Bencoding编码
BT种子文件格式和Bencoding编码 BT种子文件使用了一种叫bencoding的编码方法来保存数据。 bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典) 编码规则如下: strings(字符串)编码为:: 例如: 4:test 表示为字符串"test"原创 2008-12-01 10:55:00 · 2573 阅读 · 0 评论 -
C++标准库之中文输出详细介绍【转】
iostream、printf/wprintf和中文输出本文引用出处:http://www.enjoysoft.cn/blog/post/62.html使用C++标准库的iostream,可以方便地将控制台、文件、字符串以及其它可扩充的外部表示作为流来处理,但要处理中文,却会碰到很多问题。本人原来没怎么用过这个iostream,这几天尝试用这个写点东西,一会儿不能输出中文,一会儿不支持中文文件名的转载 2008-11-11 14:34:00 · 1381 阅读 · 1 评论 -
关于c++程序编译的过程原理详解
我们经常用到VC++2005或者其他版本来编译项目,经常会遇到这样的或者那样的编译问题。其中最郁闷的问题莫过于,所有的文件都编译成功,但是在链接的时候出错,而且是一大堆莫名其妙的错误而束手无策。最近本人在使用libtorrent库并且使用控制台程序的时候就经常碰到链接错误,着实困惑了一段时间,经过我不懈的努力最后终于解决了这一难题,弄明白了其中的原理和奥妙之后发现也不过如此啊。这里头有一个关键就是转载 2008-11-11 14:24:00 · 761 阅读 · 0 评论 -
VC 2005 解决方案的目录结构设置和管理
VC 2005 解决方案的目录结构设置和管理 Roger (roger2yi@gmail.com) 一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。除此以外,根据项目的需求,还会使用一些第三方的库。 所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够转载 2008-10-16 17:49:00 · 510 阅读 · 0 评论 -
boost与libtorrent的安装
boost与libtorrent的安装 (2007-04-30 13:43:02) 编译boost:1.下載boost source到http://www.boost.org下載最新版本的boost,我目前下載的是1.33.1,將之解壓縮到c:/boost_1_33_1/下2.編譯bjam利用Visual Studio 2005 Command Prompt開啟DOS視窗,將目錄cd到C:/bo原创 2008-10-17 18:08:00 · 804 阅读 · 0 评论 -
普通字符和UTF8字符的转换
std::string strTest("123abc中国人"); for (int i=0; i<100000; ++i) { //strTest = "123abc中国人"; char* p = xgStringToUTF8(strTest.c_str()); strTest.assign(p);原创 2008-05-21 16:21:00 · 385 阅读 · 0 评论 -
if(p == NULL) ? if(p == 0) ? if(p) ?
某些C/C++编程的书中,曾经提到如何判断指针是否为空的问题.很显然,if (p == NULL), if (p == 0) 和if(p),都能够完成这一任务,差别在于可读性方面.我们分别加以讨论. 1. if (p == NULL) 相当多的文章建议采用,他们中的部分人甚至认为,其他做法都是错误的.这个形式一个变种是 if (NUL转载 2008-04-08 11:36:00 · 2056 阅读 · 1 评论 -
C++语法总结
1 const 与volatile 的用法 1 const #include #include //行参数指向const 类型变量的指针 void display_c(cons int * pi) { cout } //行参为普通类型变量的指针 void display(int *pi) { cout } //const 类型变量转载 2007-10-23 12:56:00 · 4597 阅读 · 0 评论 -
操作符重载
操作符重载手册 一、重载规则I.可以重载的操作符 + - * / %转载 2007-09-21 10:28:00 · 442 阅读 · 0 评论 -
结构体对齐问题
1,比如:struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B;sizeof( A)=6, sizeof( B)=8,为什么?注:sizeof(short)=2,sizeof(long)=4因为:“成员对齐有一个重要的条件,即每个成员按自己的方式对齐.其对齐的规则是,每个成员按其类型的对齐参数(通常是这个类型的大小)转载 2007-09-17 16:54:00 · 412 阅读 · 0 评论 -
关于## define问题 - “#”的运用
有这样一个宏:#define DEFINE_SHMOD(mod) struct module_of_##mod { / / static const char* getmod() { / return #mod; }}具体含义是:# 是宏处理的 字符串转换符#define STRING(exp) #exp 那么 STRING(o原创 2007-09-13 10:13:00 · 472 阅读 · 0 评论