C/C++
文章平均质量分 59
茫茫大士
热爱编程
展开
-
typecheck(type,x) 作用
在kernel 2.6.30 的typecheck.h源码中有如下定义。如果它们不是同样类型的指针比较,比如a不是unsigned long,它生成一个unsigned long类型的变量__dummy,然后利用typeof生成和a同样类型的变量__dummy2,第一个是一个类型,比如unsigned long,这时候编译器会有一个警告,让你注意到这个问题。比较__dummy和__dummy2的地址。typecheck宏有两个参数,第二个是一个变量,比如a。转载 2022-10-11 10:50:12 · 316 阅读 · 0 评论 -
有符号数与无符号数比较-详解
回想一下前面我们所说的知识,因为length是unsigned类型,所以所有的运算都被隐式地被强制转换为unsigned类型,所以length-1(即0-1 = -1),-1对应的无符号类型的值为UMax,所以for循环将会循环UMax次,数组也会越界,发生错误。数据类型只有在高层的应用程序才有意义,也就是说,同样的储存表示对于应用程序而言可能对应着不同的数据,例如1111,1111,1111,1111对于有符号数而言它表示-1,但对于无符号数而言,它表示UMax,但是它们的底层存储都是一样的。转载 2022-09-30 19:30:52 · 5621 阅读 · 0 评论