这篇文章也是长期性的一个积累,对于本人个性化的一些使用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
|
所赋的值都是补码,而不是源码或者反码。