2.6.27.8内核在编译时,默认会提示如下警告:

问题上面说得很清楚,在scripts/basic/fixdep.c这个文件的377、379两行:

所谓的“提领类型双关的指针”大概也不知道什么意思,个人理解应该是这里的test指针本来是char型的,但是这里又按int型来引用。所以存在“双关”,提领估计意思是用*取变量的操作。这个警告的意思,大致是如果用int型指针来提取char型的数据,会导致数据提取越界。

解决起来也很简单,直接建立一个新的int型的指针变量,将test强制转换后赋值给他,然后再用*操作符来提取数据,代码如下: