这篇文章也是长期性的一个积累,对于本人个性化的一些使用C/C++造成的失误进行记录。
1)Printf 中格式化使用造成的失误:
1
2
3
4
5
6
7
8
9
10 |
int main() { char * str= "-1234" ; printf ( "string is %lld\nstr length is %d\n" , str2Number(str), strlen (str)); //printf("string is %ld\nstr length is %d\n", str2Number(str), strlen(str)); getchar (); return
0; } |
如上,str2Number返回的是long long 类型,如果使用注释掉的那一种printf的话,则后者显示为-1,尽管strlen(str)值仍为5。
2) 在使用赋值操作,比如:
1
2 |
int num = 0xFFFFFFFF int num = 0x80000001 |
所赋的值都是补码,而不是源码或者反码。
C/C++ Bug&Pitfalls,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/pan89/p/3751362.html