C++ #define 和常量变量相乘时出错
C++ error when multiplying #define and const variable
#include <iostream>
#include<Windows.h>
#define LENGTH 10;
#define NEWLINE 'n'
using namespace std;
int main(){
int area;
const int WIDTH=20;
area=LENGTH*WIDTH;
cout<<area<<NEWLINE;
system("pause");
}
错误在计算面积的行,它说"
* 的操作数必须是指针
不应使用 ;
终止宏定义。否则,表达式将扩展为:
area=10;*WIDTH;
现在错误是有道理的,对吧?
#define LENGTH 10;
应该是
#define LENGTH 10
// ^ no trailing ;
目前,预处理器将您的代码扩展到
area=10;*WIDTH;
// ^ error
永远不要用
分号终止宏。
#define LENGTH 10
是你需要的。
宏
是简单的文本替换。
您的宏LENGTH
将扩展到令牌10;
。
那么你在main
中的陈述实际上是两个陈述:
area = LENGTH; *WIDTH
这试图取消引用WIDTH
,它不是指针,因此不能取消引用。
您的定义包括一个分号,该分号通常会结束语句。
#define LENGTH 10;
删除分号。
LENGTH 宏中存在错误,请删除分号。
好: #define LENGTH 10
使用std::endl
进行回车。
std::cout<< area << std::endl;
相关文章:
- 导入/导出变量时出错
- 在头文件中定义变量不会出错
- 分段 访问私有类变量时出错
- C++ 循环屏障中的倒计时使用原子变量出错[请无锁的解决方案]
- 变量用作C中的函数参数后出错
- 在 mingw64- 变量下的窗口中编译 openvpn3 时出错,未在范围内声明
- 如何对 int 变量应用验证,使其仅接受整数数据,并且在任何其他数据的情况下不会出错?
- 在循环中重新声明 for 循环变量时出错
- 使用静态变量未解析的外部符号/未定义的引用时出错
- 为什么当我们把变量"u"的数据类型从长整型更改为整型时,模幂会出错?
- 将值设置为 char ** 变量 c++ 时出错
- 在同一命名空间中声明变量和函数是否出错?[C++]
- 转换(常量字符*)变量出错
- Boost Python:在函数中通过引用传递变量时出错
- 将 (cin >> someVar) 的返回分配给 istream 变量时出错 C++
- 链接外部变量 c++ 时出错
- 在C++中访问静态私有变量时出错
- 为什么我在向类[C++]添加私有变量时出错
- 执行set_difference时出错:变量结果不是结构
- 访问数组时出错 - 变量"分数"周围的堆栈已损坏