error c2632: 'long' followed by 'long' is illegal
时间: 2023-04-30 16:01:39 浏览: 886
这个错误是因为在代码中使用了两个long关键字,这是不合法的。在C++中,long long是用来表示更大范围的整数类型,应该使用它来代替两个long关键字。例如:
long long num = 1234567890123456LL;
这样就可以避免这个错误了。
相关问题
C:\Users\GIGA\Desktop\1.cpp(7) : error C2632: 'long' followed by 'long' is illegal C:\Users\GIGA\Desktop\1.cpp(8) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversion) error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversion)
这些错误是由于C++代码中的一些问题引起的。第一个错误是因为在代码中使用了两个连续的long类型,这是不合法的。可能是在某个地方出现了重复的类型定义或者声明。第二个错误是因为在代码中使用了cout输出一个字符串,但是没有正确地包含相关的头文件,导致编译器无法找到适当的重载运算符<<。你可以检查一下代码中的这些部分,看看是否存在错误或者遗漏的内容。
error: '#' is not followed by a macro parameter
如果编译器显示错误信息 "# is not followed by a macro parameter",那么可能是因为在宏定义中,# 运算符没有正确地跟随一个参数。在宏定义中,# 运算符用于将参数转换为字符串常量。例如,以下宏定义将参数 x 转换为字符串常量并打印出来:
```
#define PRINT(x) printf(#x " = %d\n", x)
```
如果在宏定义中使用 # 运算符但是没有跟随一个参数,编译器就会报错。例如,以下宏定义中就缺少了一个参数:
```
#define MY_MACRO printf(#)
```
这个宏定义中,# 运算符后面没有跟随一个参数,因此编译器会报错。
要解决这个错误,需要检查宏定义中的 # 运算符是否跟随了一个参数,并且确保参数被正确地引用。如果宏参数是一个变量名或表达式,需要使用括号将其括起来,例如:
```
#define PRINT(x) printf(#x " = %d\n", (x))
```
这样就可以正确地使用 # 运算符,避免编译错误。
阅读全文