c++ - 如何解决long int * 转换成volatile int *类型的编译错误.
PHP中文网
PHP中文网 2017-04-17 15:32:37
0
2
651
PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
PHPzhong

在 C 里并不会报错,只是会有警告:

>>> gcc -o a a.c
a.c: 在函数‘main’中:
a.c:8:7: 警告:从不兼容的指针类型赋值 [-Wincompatible-pointer-types]
     a = b;
       ^
a.c:5:19: 警告:变量‘a’被设定但未被使用 [-Wunused-but-set-variable]
     volatile int *a = NULL;
                   ^
>>> cp a.c a.cpp
>>> g++ -o a a.cpp
a.cpp: 在函数‘int main()’中:
a.cpp:8:9: 错误:不能在赋值时将‘long int*’转换为‘volatile int*’
     a = b;
         ^

警告的原因很明确,int 和 long 不兼容。C++ 里会报错,因为 C++ 的类型系统更严格。

请把问题打上正确的标签,以免引来非对口专业的人,浪费双方的时间。

PHPzhong

volatile无关。intlong本身就是不同类型(可以长度不同)啊,你这样传参驴唇不对马嘴当然报错了。先确认下你代码逻辑有没有问题,然后再谨慎使用类型转换吧。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!