游戏迷 发表于 2013-10-11 20:09:20

语法错误为什么不能指到出错的地方呢?求大神指点迷津

这是我在学习常量时遇到的一个问题,下面的红色部分的代码是出错的地方,但调试的时候提示出现语法错误地方却是蓝色部分的代码,为什么会这样呢?求大神指导
# include <stdio.h>
# define PRICE= 30;//多了一个=号,正确的代码是# define PRICE 30;
int main()
{
        int total,num;
        num=10;
        total = num * PRICE;/*当我定义常量PRICE时多了一个“=”时,提示语法错误的地方为什么是这里呢?*/
               printf("total=%d\n",total);
   
}

tjf 发表于 2013-10-11 20:26:22

# define PRICE= 30;//多了一个=号,正确的代码是# define PRICE 30;
我记得有#,就不用有;。
哪错了,我就不知道了{:1_1:}

清风不识字 发表于 2013-10-11 20:39:45

define只是起到一个替换功能,就是在你编译的时候,把这句total = num * PRICE的PRICE替换成= 30,也就是你的语句变成了total = num * = 30。这当然会报错。
比如说你可以这么写
#include <stdio.h>
#define a {
#define b }
int main(void)
a
      printf("Hello,world!\n");
      return 0;
b

tsembrace 发表于 2013-10-12 11:32:47

多了个分号
要是在define里用分号,主函数里就不需要了

苹果沃珂 发表于 2013-10-12 12:48:26

清风不识字 发表于 2013-10-11 20:39 static/image/common/back.gif
define只是起到一个替换功能,就是在你编译的时候,把这句total = num * PRICE的PRICE替换成= 30,也就是你 ...

有道理……

牛牛 发表于 2013-10-12 13:19:23

路过!:hug:
页: [1]
查看完整版本: 语法错误为什么不能指到出错的地方呢?求大神指点迷津