-2

我得到错误:错误 C2143:语法错误:缺少';' 在“:”之前在视觉工作室

对于以下 cpp 代码。谁能解释我为什么会收到此错误?

帮助表示感谢

#include<iostream>
using namespace std;

#define UP '1';
#define DOWN '2';
#define RIGHT '3';
#define LEFT '4';

void main()
{
    char key ;
    char value = 'x';
    cout<<"Enter 1 or 2 or 3 or 4"<< endl;
    cin>>key;
    switch(key)
    {
    case UP :
        cout<<"case UP"<<endl;
        break;
    case DOWN:
        cout<<"case DOWN"<<endl;
        break;
    case LEFT:
        cout<<"case LEFT"<<endl;
        break;
    case RIGHT:
        cout<<"case RIGHT"<<endl;
        break;
    }
}
4

4 回答 4

3

; #define 之后不能出现。

于 2013-11-03T04:08:10.417 回答
2

你可以阅读这个


;之后不要使用#define。例如,当你想初始化一个变量时,你应该使用这个方法:

#define Max_number 10000

潜在问题:

#define Max_number 10000;    // this is an error
#define Max_number = 10000   // this is also an error

有时您可以将其用作函数:

#include <iostream>
#define show(x) cout << #x << " is : " << x;
int main(){
    int number = 76;
    std:: show(number);
}
于 2013-11-03T14:08:31.433 回答
2

不要放在;定义语句之后

    #define UP '1'
    #define DOWN '2'
    #define RIGHT '3'
    #define LEFT '4'
于 2013-11-03T04:09:27.610 回答
2

#define的 s 末尾有分号。因此,一旦它们被扩展,您将拥有:

    switch(key){
        case '1';:

摆脱分号。 #defines 不需要分号;他们在线路结束时结束。

于 2013-11-03T04:09:33.817 回答