int main()
{
volatile int *a = NULL;
long int * b = NULL;
a = (volatile int *)b;
//a = b; 这里就会编译报错.
}
对于a=b
这种形式的转换如何解决? 在编译boost asio的时候发现,里面有大量代码参数类型是volatile int *
, 而传入的实参是long int
, 由于参数不匹配而导致了编译失败.
int main()
{
volatile int *a = NULL;
long int * b = NULL;
a = (volatile int *)b;
//a = b; 这里就会编译报错.
}
对于a=b
这种形式的转换如何解决? 在编译boost asio的时候发现,里面有大量代码参数类型是volatile int *
, 而传入的实参是long int
, 由于参数不匹配而导致了编译失败.
3 回答1.4k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答901 阅读
1 回答970 阅读
1 回答1k 阅读
1 回答759 阅读
1 回答861 阅读
在 C 里并不会报错,只是会有警告:
警告的原因很明确,int 和 long 不兼容。C++ 里会报错,因为 C++ 的类型系统更严格。
请把问题打上正确的标签,以免引来非对口专业的人,浪费双方的时间。