#ant

The dreams in which I'm dying are the best I've ever had...

共3页: 1 2 3 
re: 反外挂的一点牢骚 蚂蚁终结者 2007-12-23 13:17
中国的外挂真是NB的不行了!
re: strlen源码剖析 蚂蚁终结者 2007-12-05 19:39
@福福
中文字符应该用wcslen才对,strlen是用来处理单字节字符串的。
详细描述请看MSDN:
However, strlen interprets the string as a single-byte character string, so its return value is always equal to the number of bytes, even if the string contains multibyte characters. wcslen is a wide-character version of strlen; the argument of wcslen is a wide-character string and the count of characters is in wide (two-byte) characters.
re: 关于sizeof()的简单解析 蚂蚁终结者 2007-11-15 10:51
以前也没有注意过,主要是不会这么写!
re: MD5算法的C++实现 蚂蚁终结者 2007-11-10 10:49
@MonkeyLin
thanks!
ICU记得以前编译Boost库时下载过。
在64位机器上确实会有问题,不过为了简单,也为了减少对库的依赖性,把
typedef unsigned long ulong;
改成
typedef unsigned int uint32;
基本就够用了。
已经更新了源代码^_^
re: strlen源码剖析 蚂蚁终结者 2007-11-04 09:35
you gotta it!
re: 自己动手编写的QQ客户端 蚂蚁终结者 2007-10-22 23:11
呵呵,前不久也打算写个玩玩,一直没时间
re: MD5算法的C++实现 蚂蚁终结者 2007-10-22 13:24
@MonkeyLin
都是学习嘛,互相讨论会更有收获呵呵。
re: 做笔试题增长功力(3)--华为 蚂蚁终结者 2007-10-18 19:22
华为的笔试题貌似不难么,呵呵
re: 无符号变量居然也能输出-1 蚂蚁终结者 2007-10-18 12:44
呵呵,过来改正个笔误,11111111居然写成了1111了...
re: 你也许不知道的#define用法 蚂蚁终结者 2007-10-18 11:21
#@x
倒没怎么见过
re: 汉语编程++ 蚂蚁终结者 2007-10-18 11:17
非把人累死不可,确实是无聊的东西
re: 无符号变量居然也能输出-1 蚂蚁终结者 2007-10-18 11:08
实际上就是有符号数转换中"符号位扩展"的问题。
short temp2 = temp1;
...
unsigned int temp6 = temp2;
先不管temp2的值是多少,上面就是short符号位扩展到int,然后再从int转unsigned int的问题。short是有符号类型,先进行符号位扩展(假设short为16位,int/unsigned int为32位)
1. short为正数,则最高位为0,当从16位扩展到32位int时,扩展的高16位用0填充,即将符号位0进行扩展,这样扩展后的32位整数和原来的整数值是一样的。
2. short为负数,则最高位为1,当从16位扩展到32位int时,扩展的高16位用1填充,即将符号位1进行扩展,这样扩展后的32位整数和原来的整数值是也是一样的。
即上面的代码等效于:
short temp2 = temp1;//temp2为-1(11111111 11111111)
...
int tempInt = temp2; //符号位扩展,tempInt也为-1(11111111 11111111 11111111 11111111)
unsigned int temp6 = tempInt;//将(11111111 11111111 11111111 11111111)解释为无符号
re: MD5算法的C++实现 蚂蚁终结者 2007-10-18 10:27
@MonkeyLin
thanks!不过我想你没有仔细看代码,string是按值返回的,不存在任何问题。
如果返回值类型是string&或string*,才会出现你说的返回局部变量的问题。
另外,return str;与return string(str);并无本质区别。
re: 如何写出专业的C头文件 蚂蚁终结者 2007-10-17 10:04
都是相当实用的,不错。
re: 转:字节对齐详解 蚂蚁终结者 2007-10-17 10:00
不错的文章。
re: C++/VC/Windows学习书籍之我见 蚂蚁终结者 2007-10-16 07:55
入门的书籍有一本叫C++ how to program什么的好像很不错,就是有点厚,大概1000多页吧。中等书籍C++ Primer不错,再就是Effective C++,More Effective C++, Exception C++, More Exception C++之类的。
C++标准库的当然少不了,讲STL入门的有The C++ Standard Library,还可以当参考书用。还有STL源码剖析等。。。不一一列举了,总之好书太多了呵呵
re: 中国年轻人最绝望的六大社会现状 蚂蚁终结者 2007-10-13 15:47
小心被和谐了,呵呵~
re: strlen源码剖析 蚂蚁终结者 2007-10-12 16:43
我也奇怪,就改了一下,再发布就变了。连日期都变了,郁闷。。。
re: 非完美C++ Singleton实现[2] 蚂蚁终结者 2007-10-10 09:06
@fr3@K
谢谢你的建议。
不能从static code中调用Instance()确实是一种限制。我想应该可以通过某种类似Boost::singleton中的技巧来确保static object(mutex)在Instance()之前初始化。有时间了再把这段内容补上。
re: 非完美C++ Singleton实现[2] 蚂蚁终结者 2007-10-09 16:32
其实后来觉得多数情况下eager initialization要优于lazy initialization。
如经典的Meyer's Singleton以及Boost::singleton
re: 非完美C++ Singleton实现[2] 蚂蚁终结者 2007-10-09 16:30
@fr3@K
实际上multithreading的问题不在于mutex这里,一个好的设计会在main函数真正启动后再调用Instance(),而这时候global object可以确保已经初始化,即在调用Instance()时可以保证mutex已经初始化。因此只要程序在真正进入main函数以前不调用Instance(),就不会有global instance的初始化问题。
re: DES算法及其在VC++6.0下的实现 蚂蚁终结者 2007-10-08 22:40
不错,比较详细,有时间再看。
re: 开源QQ协议库QQProtocol 蚂蚁终结者 2007-10-06 09:38
不错的东西,先收下了哈哈。。。
re: [转]一学期内表情的变化[图] 蚂蚁终结者 2007-09-27 11:37
有意思
re: strlen源码剖析 蚂蚁终结者 2007-09-27 11:16
c语言的版本不会有endian的问题,如果用汇编就需要注意了。
假设有4个连续的字节abcd,现在要找出其中的第一个0字节:
1. 在PowerPC这种big-endian的计算机上,将这4个字节读到寄存器中依然是
abcd,从左到右找到最左边的0字节就OK了。

2. 在X86这种little-endian的计算机上,将这4个字节读到寄存器中就会变成
dcba,这就需要从右到左找到最右边的0字节。

可以看出,上面VC的汇编实现是针对X86计算机的。
re: 处女座:避免陷入细节 蚂蚁终结者 2007-09-27 10:06
刚好我是处女座的,难道是在说我呵呵!
re: [原创]想买的几本书啊~~残念... 蚂蚁终结者 2007-09-27 10:05
英文原版图书在国内是在难买
re: strlen源码剖析 蚂蚁终结者 2007-09-27 09:35
Sorry,我不该用WORD这个单词。我说的WORD在这里表示计算机中的一个字长,不是一般为2个字节的WORD类型。
re: C++&Win32写的空当接龙 蚂蚁终结者 2007-09-27 09:13
AI算法不是我自己写的,用的是Freecell Solver的C代码。那个比较复杂,差不多有1W多行,为了方便我就封装成了AI.dll
re: strlen源码剖析 蚂蚁终结者 2007-09-27 09:06
实际上0~255都能检测出来的:
if (cp[0== 0)
    
return cp - str;
if (cp[1== 0)
    
return cp - str + 1;
if (cp[2== 0)
    
return cp - str + 2;
if (cp[3== 0)
    
return cp - str + 3;
如果上面的语句执行完还没有return,则会继续下一次循环,这样还是能检测到在if语句中漏掉的128~255,只不过效率上会有所损失。如果要检测0~255之间的字符,strlen_c比strlen_d要好。因为strlen_c只会漏掉这样的WORD:
    10000000 XXXXXXXX XXXXXXXX XXXXXXXX
re: 从for到foreach 蚂蚁终结者 2007-09-27 08:33
用for来处理container确实比较麻烦,有时候for语句还得折行。
估计新的特性可能还要等不少时间...
re: strlen源码剖析 蚂蚁终结者 2007-09-27 08:19
可能我说的不够清楚,看下面的例子:
                   b3      b2       b1       b0
               31------------------------------->0
     longword: 00001001 00011000 00000000 00001100
+  magic_bits: 01111110 11111110 11111110 11111111
          sum: 10001000 00010110 11111111 00001011
^   ~longword: 11110110 11100111 11111111 11110011
            a: 01111110 11110001 00000000 11111000
& ~magic_bits: 10000001 00000001 00000001 00000000
       result: 00000000 00000001 00000000 00000000
sum = longword + magic_bits;
a = sum ^ ~longword;
即用sum与longword逐位比较,如果有某个位相同,就说这个位在加法后未改变,这样在a中为1的位就是未改变的。
 
result = a & ~magic_bits;
得到未改变的hole位,从上例可以看出第16 bit这个hole加法后未改变,这样就检测出了0字节。
 
re: C++ 类成员的CALLBACK 蚂蚁终结者 2007-09-23 09:32
不错的例子
re: 动态链接dll 蚂蚁终结者 2007-09-17 08:01
也有叫load-time dynamic linking和run-time dynamic linking,上面的是run-time dynamic linking
re: 又是未完成的东西 蚂蚁终结者 2007-09-15 22:49
看了一下ppt的代码,如skipper所说,效率并不高,先不说lazy evaluation。看看Metrix本身的设计:

copy construct 其实没必要2层循环,也没必要用operator()来存取元素:
这样写效率肯定不一样
Metrix::Metrix(const Metrix& a) {
M = a.M;
N = a.N;
int size = M * N;
element = new double[size];
for (int i = 0; i < size ; ++i)
element[i] = a.element[i];
}
当然了,上面的还可以再优化,用memcpy会更快:
Metrix::Metrix(const Metrix& a) {
//...
memcpy(element, a.element, size * sizeof(double));
}
copy assignment operator以及operator+也一样可以优化...
不多说了呵呵
re: MD5算法的C++实现 蚂蚁终结者 2007-09-15 18:41
@abc
没问题就好。“您”字看得我好怪...
re: 今天碰到了一个奇怪的问题 蚂蚁终结者 2007-09-15 10:42
new (trieNode);//还真是奇怪的写法
如果trieNode是个class,
new (trieNode);
去掉括号等同于new trieNode;
也应该等同于new trieNode();
re: MD5算法的C++实现 蚂蚁终结者 2007-09-15 09:52
@abc
我最早就是在VC++ 2005上写的代码,在GCC上也测试过。
有可能你没有把md5.cpp加入工程,如果只用md5.h和test.cpp进行编译就会出现上面的8个error。
不错,先收藏了
re: 熊猫烧香 源码 有兴趣的来看看 蚂蚁终结者 2007-09-14 08:20
对Delphi不熟悉,飘过。。。
不错,以前只知道bit field不好移植,今天算是见到实际例子了
re: STL问题系列一 蚂蚁终结者 2007-09-13 20:21
这本书我没看过,不过The C++ Standard Library很不错
re: msdn也有错? 蚂蚁终结者 2007-09-13 10:11
应该是MSDN的问题,STL的参考书还是The C++ Standard Library比较棒.
re: MD5算法的C++实现 蚂蚁终结者 2007-09-13 08:27
@ornaking
呵呵,共同学习
re: 写了一个用来写log信息的小程序 蚂蚁终结者 2007-09-11 15:51
cppblog最近人气不高啊,帮你顶顶...
re: MD5算法的C++实现 蚂蚁终结者 2007-09-11 15:32
@VrcatS
有意思,thanks!
re: MD5算法的C++实现 蚂蚁终结者 2007-09-11 12:25
总算抽出时间修改了一下接口,只敢说比以前的好。实在想不出比较完美的,要是哪位有好的想法还望告知...
re: MD5算法的C++实现 蚂蚁终结者 2007-09-10 11:45
@SmartPtr
Sorry!我对.Net不太熟悉呵呵
re: 非完美C++ Singleton实现[2] 蚂蚁终结者 2007-09-10 11:33
@ChenA
thanks!
re: MD5算法的C++实现 蚂蚁终结者 2007-09-10 11:25
@Ray
Thanks!
头文件的define确实该放在cpp里,是我疏忽了。
类的接口也正在优化...
共3页: 1 2 3