分类: C/C++
2011-10-10 15:17:33
2.6.27.8内核在编译时,默认会提示如下警告:
HOSTCC scripts/basic/fixdep scripts/basic/fixdep.c: 在函数‘traps’中: scripts/basic/fixdep.c:377:2: 警告:提领类型双关的指针将破坏强重叠规则 scripts/basic/fixdep.c:379:4: 警告:提领类型双关的指针将破坏强重叠规则问题上面说得很清楚,在scripts/basic/fixdep.c这个文件的377、379两行:
所谓的“提领类型双关的指针”大概也不知道什么意思,个人理解应该是这里的test指针本来是char型的,但是这里又按int型来引用。所以存在“双关”,提领估计意思是用*取变量的操作。这个警告的意思,大致是如果用int型指针来提取char型的数据,会导致数据提取越界。
解决起来也很简单,直接建立一个新的int型的指针变量,将test强制转换后赋值给他,然后再用*操作符来提取数据,代码如下: