自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Linuxtiger之家

代码 篮球 音乐 旅行 佛禅人生

  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 小细节:void指针一二三

void指针,又叫通用指针或者泛指针(generic pointer)

2014-06-05 23:27:25 1098

原创 小细节:关于C++各种变量的size问题。

C++中整形数据类型的范围都定义zail

2014-06-05 20:50:38 1257

原创 刨根问底:C++中浮点型变量(float, double)的比较问题。

首先,让我们先来看一段代码:#include #include int main(){ using namespace std; cout<<setprecision(17); float num1 = 1.1; double num2 = 1.1; if (num1 == num2) cout << "yes"<<endl; else cout <<

2014-06-05 17:42:13 7152

原创 刨根问底:C++的移位操作

以前一直有个误区,认为负整数的右移位操作符不会改变操作数

2014-06-05 01:46:48 1067

原创 小细节:说说整形提升(Integral promotions)

整形提升这部分内容,其实C++11 ISO文档里介绍的已经很详细了,但还是rongy

2014-06-04 22:13:14 1102

原创 小细节:有关数组的指针的一道题

今天看到一道题。

2014-06-04 02:49:17 982

原创 两个小细节:短路求值和调试宏

短路求值,又叫惰性求值,

2014-05-30 00:07:29 1062

原创 刨根问底:C++中未初始化全局变量为什么都会被编译器自动置0

有这个疑问很久了今天搜了一上午资料想知道为什么。

2014-05-24 17:02:15 4521 1

原创 刨根问底:C++中宽字符类型(wchar_t)的编码一定是Unicode?长度一定是16位?

问题的起因是和一个朋友讨论不同编码的转换问题,说到了wchar_t的类型,朋友的看法是,wchar_t的编码方式是utf-16,长度一定是16位的。我的看法不同,我认为wchar_t的长度和编码方式都是编译器和平台决定的,和语言没任何关系。后来这个朋友为了说服我,回家把c++ primer给我搬出来了,还给我截了个图(因为我没这本书),在这本书第30页有个表格,清楚地写着wchar_t是u

2014-05-23 22:57:37 2663

原创 心情终于平复了许多。

周末申请了加班,连续写代码,感觉心情好了很多。接下来就是自我改变了,革自己的命,千万别手软。

2013-07-13 16:00:37 1039

原创 也许代码和音乐只不过是我逃避现实世界的工具罢了

作为一个屌丝,我承认有时候会对这个2B世界有种无力感,你拼死拼活努力10年得到的东西也许还不如人家有个好爹,你拼死拼活工作,得到的成果,在别人眼里可能芝麻大小都算不上,你拼死拼活读书18载,可能还不如天才们个把月的学习量。代码和音乐于我而言,可能只是逃避现实世界的工具而已,因为这两样事物能让我活在自己的世界中。我真的很爱这两样东西吗?或许很爱,但这都不是让我逃避现实世界理由。

2013-06-13 09:45:13 1390

原创 把握代码的整体性

前几天开会的时候Cici说我写代码的时候过于关注于具体功能细节,对整体的把握不够到位,回家自己思考了下,确实有道理,拿到需求后总是想直接把功能完成,而对于模块的前因后果以及对整体的影响总是考虑不到位,以至于后期维护成本增加。想想自己很多事都是这样,目光过于短浅,看的不够深,不够远,总是在细节上纠结,以后还是要注意了,生活上和代码上都是如此。

2013-04-15 15:58:29 807

原创 不健康的生活终于让身体有了反应

最近,熬夜太厉害,加上过度劳累,白天工作,晚上翻译,又玩玩游戏的,终于让本来素质就很一般的身体有了反应。由于自己身体素质一直不是特别好,因此一直很注重养生,身体和心理都很注重保养,但最近有点太没规律了,黑眼圈越来越严重,体力也越来越不好,昨天剪头的时候,后面的头发居然有一块指甲大小的斑秃,咨询了下医生朋友,基本可以确定是过劳导致的。这样可不好,一定要恢复健康的生活习惯,身体

2013-04-04 17:53:00 1419

原创 关于数组局部初始化的一些延伸

今天在做Cici的一个Code review的时候,她的一个数组初始化用法让我有点疑惑,大体是这么用的:char buffer[16] = {0};她这段代码的目的倒是很好理解,就是把buffer初始化为全为0的内存空间,但是,如果让我这么做的话,我会用memset,而且很多其他程序员也会是这么做的。我自己在VS2010上试了下这种用法,确实也是全部初始化为0了。但仍然很困惑,不知

2013-03-14 14:53:02 818

原创 一些随感

这几天突然生病了,晚上开电热毯忘记关掉,结果出了一身汗,然后关电热毯,由于太热,被子没怎么盖,第二天就开始流鼻涕,开始没在意,结果开始发烧了,躺床上晕晕乎乎的,突然回想起小时候感冒发烧的时候,都是老妈用酒擦后背和额头退烧的,现在想想,自己出去独立生活已近步入第12个年头了,生活越来越独立,和老妈联系也越来越少,但前几天和老妈通话,居然第一句就是缺不缺钱,这真是让我心里涌上了一股不止什么的滋味。

2013-01-24 21:50:20 831

原创 老妈真是太了解我了

早上还在睡梦中的时候,老妈来了个电话,问我,我有没有脑震荡,我当时就懵了,怎么问这个?我妈说梦到我脑震荡了,我赶紧说我没事,一切都好,不要担心。挂了电话后,想想,不知道是不是和我妈有点心灵感应,俺这几天虽然没脑震荡,但是做的事,想的一些事,确实挺不成熟,挺脑残的,老妈说的倒也不错。。。幸亏老妈提醒啊,还是做点正经事吧,自己左右不了的事就别瞎想了。

2013-01-03 19:33:26 1599 1

原创 关于makefile中,一直显示“XXX is up to date”的解决方法

最近更新一个项目的makefile文件,在添加一个makefile target的时候,发现总是出现“is up to date”的提示,书写语法无任何不妥,始终找不到原因,最后google了下,找到了解决方案。在stackoverflow上,有人给出的问题原因如下:Your have directories with the same name as your targe

2012-09-07 14:45:36 68585 2

原创 error LNK1123: failure during conversion to COFF的解决方法

昨天Microsoft放出了VS2012的release版本,据说完全支持C++ 11标准,这让C++控的我大为振奋,加上公司的MSDN key可以激活正版VS2012,于是兴冲冲的下载了一个VS2012,装上后他是没问题了,但是原来的VS2010有问题了,这可气煞我也,开始没想到是VS2012引起的,以为是某个配置文件搞错了,网上搜了下。关于这个错误,微软的官方解释是这样的,COFF

2012-08-17 20:08:23 14400 3

原创 打篮球去

“打篮球去”,这句话你既可以看成是叫别人打篮球去,也可以看成自己表达想打球的欲望,当然,无论哪一种,都表达了说话人本身的意愿。说起打篮球,最早应该是初三的时候打的,那个时候学校举行了一个篮球比赛,我所在的班级由于有几个体育特长生,因此拿了年级第一,看着场上的队员打球觉得挺好玩,自己没事也拍拍球,但那个时候大抵是瞎玩,没任何技术,仅仅是觉得有趣。那段时间玩的频率不高,也就体育课的时候和同

2012-07-20 22:12:59 3083 2

原创 找差距,确定目标。

最近找工作,跟不少大公司技术人员交流过,觉得自己的差距还是蛮明显的,过去一直觉得自己较重视实践,并且相对重视全面能力,但是真正接触到了牛人后,真有自愧不如的感觉,自己还是浪费太多的时间了。本科阶段的课程其实挺有体系的,但是自己没有珍惜,master也是混过去的,导致现在有点高不成低不就,做高级职位,做不来,做初级职位,又有点超出标准,自己就夹在这个当口上,也真是不好安排。不

2012-03-14 16:16:00 1523 5

原创 对归并、堆排、快排的一些总结。

这三个算法的理论时间复杂度都是nlogn,但是区别还是很大的。这三个算法里,实际效率最低的是堆排序,因为在每次调整大根堆的时候,都把底层元素交换到了根,然后再调整,而底层元素又不可能大于原根元素的两个孩子节点,因此非等概率调整,做了很多次无效交换,因此实际效率最低。归并排序时间效率最高,并且稳定,因为归并排序每次都把序列二等分,做等概率划分,最后继续划分,这样就能达到最优划

2012-03-04 16:45:30 2697

原创 评判一个程序员好坏的标准到底是什么?

在这个IT技术火爆的年代,人人都喜欢学IT,人人都用IT技术,但是评判一个程序员好坏的标准到底是什么呢?翻开各大公司招聘网站,映入眼帘的是各种编程语言要求:大学本科毕业、英语四级、精通JAVA、3年以上JAVA开发经验、熟悉Servlet和MVC、熟练使用MFC、熟练使用Win32 Socket、熟悉Linux网络配置、熟悉Windows shell和Linux Shell,等等诸如此

2012-02-26 21:03:47 3716 4

原创 关于http 表单编码的一些问题。

在网络上传输数据,压缩编码加密等操作基本是必须的,表单也是如此。最近搞桌面客户端手动组装message发送,由于桌面客户端API的网络库往往只提供简单的通讯功能,因此协议参数都得手动设定,我在模拟一个post方法的时候出现了差错,总返回错误信息,后来发现是编码设置问题。HTTP post表单编码有multipart/form-data和application/x-www-f

2012-02-21 14:01:07 835

原创 Visual Studio 2010 环境下 配置LibCurl with SSL 方法

这两天没事研究各种互联网协议,开始用原始socket自己封装通讯类,但是太麻烦,用ACE,又太重量级,最后改用cURL,比较适合大众使用。Libcurl过去只听过,没用过,只知道支持各种网络应用层通讯协议,并且用c语言实现,效率很高,使用又很方便。去了趟官网,发现很多版本的库文件,可见开发者真的花了很大功夫去维护,并且基于网络数据传输的无差别性,该函数库几乎可以在所有操作系统上使用,真

2012-02-15 23:41:53 6612 2

原创 构建二叉堆时间复杂度的证明。

如果仅从代码上直观观察,会得出构造二叉堆的时间复杂度为O(n㏒n)的结果,这个结果是错的,虽然该算法外层套一个n次循环,而内层套一个分治策略下的㏒n复杂度的循环,该思考方法犯了一个原则性错误,那就是构建二叉堆是自下而上的构建,每一层的最大纵深总是小于等于树的深度的,因此,该问题是叠加问题,而非递归问题。那么换个方式,假如我们自上而下建立二叉堆,那么插入每个节点都和树的深度有关,并且都是不断的把树折

2012-01-03 07:50:20 12233 3

原创 小细节:为什么STL中的流对象无法复制?

因为流对象中含有指向IO缓冲区的指针,假如流对象可以复制,那么将会有两个指针同时操作缓冲区,如何释放、如何修改都会有冲突同步问题,因此流对象无法复制。

2011-12-18 10:24:08 1530

原创 小细节:int *a[n] 和 int (*a)[n]到底啥区别?

先看int *a[n],按结合顺序来看,首先是a[n],也就是a首先是个数组,是个具有n个元素的整形数组,然后再看 *a,是指向整形的指针,那么按照结合顺序,该表达式所表达的意思就是:n个指向整形数据的指针,即指针数组。再看int (*a)[n],还是按结合顺序来看,首先是(*a),这表明a首先是个指针,指向什么?看后面的表达式[n],标明a所指的对象是具有n个元素的整形数组,即a是数

2011-12-14 02:35:07 7099

原创 cin的一个小细节

用cin从控制台输入字符的时候,常常有违法输入的情况,比如,给一个int型变量初始化为char型字符。当出现这种情况的时候cin中的一个标志位会被置为错误码,范围是1-4,也就是非0,当cin中错误码为非0的时候,用户无法再次调用cin输入,而这时候,如果调用clear方法,该标志位则会清零,如果想清空输入缓冲区内的数据,则需要再调用一次sync方法,这时候cin会恢复初始状态,接受任

2011-12-12 04:19:36 863

原创 关于winsock中异步通信的一个怪问题的解决。

昨天练习了一天异步式网络通讯编程,在一个使用WSAAsyncSelect模式的程序中出现了问题,问题出现的很蹊跷,客户端可以和服务端连上,但就是触发不了服务器的自定义事件,但是如果手动用SendMessage去触发事件的话,一切正常,最初怀疑是代码问题,检查了好多遍,换了很多种方法,都没用,最后网上查了好多资料,代码改了又改,还是有问题,最后监视网络、抓包、查内存,反汇编。。。全用上了,但就是解决

2011-11-30 08:11:18 1105

原创 GetAdaptersAddresses使用小结

这几天想复习下Windows C socket网络编程,网上查阅了一些资料,大部分资料还是比较老的,介绍的都是旧接口函数,而且,绝大多数书上的内容都没有介绍API中支持ipv6的接口。 我在写一个获得本地网卡信息的函数的时候,本来想用GetAdapterInfo,由于很久没用过win32 api,于是查了下MSDN,发现这个接口已经很旧了,而且不支持ipv6,在文档中明确推荐使用GetAd

2011-11-23 09:33:13 19310 9

原创 Visual Studio 2010下生成ACE静态库方法

这几天准备捡一捡C++网络编程,自然少了不了最著名的C++网络库ACE了,上次用ACE还是本科时候,于是重新下载了ACE,是最新的6.05版本的,解压后上文件夹里找,居然没找到带static的工程文件,网上搜了好多方法,都是针对ACE 5.6的老方法,上官网的email-list看了下,终于发现了解决方法。原来ACE从6.0开始,针对VS的工程文件就必须由用户自己生成了,而生成的工具则

2011-11-13 04:06:56 2981

原创 STL中伪函数、函数对象(functor)初步理解(下)

好了,有了以上理论知识,就可以探讨一下函数对象的用法了,接下来我会以STL中使用最频繁的for_each做例子,来说明函数对象的原理和作用。先查一下for_each的用法,在www.cplusplus.com上查到了比较详细的解释,原文如下:Apply function to rangeApplies function f to each of

2011-11-12 10:47:08 3053

原创 STL中伪函数、函数对象(functor)初步理解(上)

伪函数或者函数对象只是翻译的问题,英文全部都是functor,还有些读物管这个叫函数符。functor作为C++ STL六大基本组件之一被广泛使用(其他五个分别是容器、演算法、迭代器、适配器、分配器),那么,functor的意义在哪里?或者说它有什么作用?这项技术从概念上不难理解,伪函数也好,函数对象也好,都说明了它不是真正的函数,而是一种类似函数作用的东西,在STL里,我们经常需要对

2011-11-10 12:24:46 3534

原创 怎么判断一个问题是不是递归的

递归,怎么理解这个概念?我们不需要用复杂的语言来描述这个概念,只需要从这个词的本意入手即可。递归的英文也就是recursion,这个词的词源是recur,我们都知道occur的意思是发生,那么recur的意思也就不难理解了,也就是重复发生。所以说,递归,就是指一个事情周期性重复发生,也就是说,在一个算法里,如果一个方法被重复调用,那么这个方法就有可能是递归的。 那么怎么判断一个问题是否能用

2011-10-31 07:28:35 3092

原创 二级指针与指针的引用

这两个东西在过去的编程中用的次数也不少了,但是却一直不太了解原理,今天自己想了好久,发现钻了不少牛角尖,越想越不明白原理,于是查阅了一些资料,算是多少有了些成果,自己总结一下吧。 二级指针,也就是指针的指针,作用主要是为了改变指针本身的数据,在这里,可以把指针本身看成一个变量,既然是变量,那就肯定可以修改其内容,所以可以借助一个二级指针来改变指针本身的数据。 指向引用的指针,也就是

2011-10-29 13:09:22 3559 2

原创 近期小结

10月份就要过去了,回想这一个月,虽然极力想利用好时间,但是给自己的压力还是有点不够,做事情有点效率低,并且拖欠了不少工作。 C++基础部分复习的还算有点成果,重新读了下effective C++、more effective C++和部分C++ primer plus,感觉还是收获了些东西,好书还是要多读的,第一遍是读,被动的吸收,第二遍是理解,第三遍是主动的总结,变成自己的,我还是那个

2011-10-28 09:52:00 570

原创 The issue of template definition and declaration separation

The saparation between the declaration and the defination of template class is illegal. That is because the template class is not a real class. The compiler take resposibility to generate the specific

2011-10-25 06:10:21 735

原创 深入new和delete小结

new和delete是c++中使用频率非常高的两个关键字,可以说C++内存操作的核心就在于这两个关键字,近几天阅读了相关的文章,发现自己对于这两个关键字的理解太过肤浅,因此做了一些个人总结。 首先要明确一点,new和delete所操作的内存全部是在堆区,这个区域的内存和栈区是不一样的,不会自动释放,因此一定要记得释放不使用的内存,否则会造成内存泄露。new操作有两种形式,一种是原始的new

2011-10-21 02:12:25 1376

原创 C++中句柄类小结

句柄类,也就是handle class,是C++中的一种重要的面向对象方法,其作用有两条:1. 减少头文件的编译依赖关系,让文件间的编译更加独立;2. 增加系统安全性,把类的实现细节和声明完全的分离开,让类的实现细节对于用户完全的不可见,增加信息的安全性。 句柄类实际我在

2011-10-17 00:57:23 13968 6

原创 qt中的线程重入问题

昨天晚上写程序的时候遇到了一个问题,我想在子线程中操作父线程的类成员,但是每次都是在link的时候出现access violation,把子线程类声明成父线程的友元类也没用。 很费解,因为按照操作系统原理上的解释,一个进程中的所有线程的数据是可以共享的,并且C++的类有可

2011-08-31 20:20:55 1788

MYSQL中文帮助文档

MYSQL中文帮助文档。觉得好的朋友在下面留言吧。

2010-11-08

DHTML 中文帮助文档

DHTML的中文帮助文档,觉得好的朋友就留言吧。

2010-11-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除