84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
认证0级讲师
在 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++ 的类型系统更严格。
请把问题打上正确的标签,以免引来非对口专业的人,浪费双方的时间。
和volatile无关。int和long本身就是不同类型(可以长度不同)啊,你这样传参驴唇不对马嘴当然报错了。先确认下你代码逻辑有没有问题,然后再谨慎使用类型转换吧。
volatile
int
long
在 C 里并不会报错,只是会有警告:
警告的原因很明确,int 和 long 不兼容。C++ 里会报错,因为 C++ 的类型系统更严格。
请把问题打上正确的标签,以免引来非对口专业的人,浪费双方的时间。
和
volatile
无关。int
和long
本身就是不同类型(可以长度不同)啊,你这样传参驴唇不对马嘴当然报错了。先确认下你代码逻辑有没有问题,然后再谨慎使用类型转换吧。