当前位置: 技术问答>linux和unix
gcc关于指针类型转换的问题
来源: 互联网 发布时间:2015-11-01
本文导语: 刚学习linux编程,准备移植以前在其它平台写的C程序。 使用qt自带的工具qmake生成makefile,发现对指针类型转换有严格要求,以前对unsigned char*和char *,没有严格区分,现在全部认为非法。以前在别的平台一直没问题...
刚学习linux编程,准备移植以前在其它平台写的C程序。
使用qt自带的工具qmake生成makefile,发现对指针类型转换有严格要求,以前对unsigned char*和char *,没有严格区分,现在全部认为非法。以前在别的平台一直没问题,运行也良好。
不知gcc有没有开关将该问题关闭?
请各位指点!
使用qt自带的工具qmake生成makefile,发现对指针类型转换有严格要求,以前对unsigned char*和char *,没有严格区分,现在全部认为非法。以前在别的平台一直没问题,运行也良好。
不知gcc有没有开关将该问题关闭?
请各位指点!
|
其他平台是用C编译的吗?
如果用C编译好象就没这个问题,我以前是这样的。
你试个简单的,看是不是。
如果用C编译好象就没这个问题,我以前是这样的。
你试个简单的,看是不是。
|
你可以在Makefile中添加一个宏定义,所有unsigned char*均转换为char*即可,不过并不推荐这样做,类型检查不严格本身就是程序的隐患
|
试试用个选项,指定char默认为unsigned型,再编译看看?
|
不是gcc的问题吧
C不会要求程序员强制转换,但c++会
C不会要求程序员强制转换,但c++会
|
没什么问题,把它都变过来好了.
又不是变成int*,反正都是8位嘛.
又不是变成int*,反正都是8位嘛.
|
做系统级的程序员一定要养成强制转换的习惯,不然有时候程序出错了,会整死人的,程序大了你就明白了