love20101518 发表于 2014-2-9 14:42:53

为什么我的是错误的呢

http://bbs.fishc.com/data/attachment/forum/201402/09/143659wk3jjd9kiwwd5j5j.gif
是英文输入的呀

故乡的风 发表于 2014-2-9 14:42:54

love20101518 发表于 2014-2-9 16:55 static/image/common/back.gif
我又重新建立了一个是正确的,但是把正确的代码复制到没有关闭的窗口上还是错误的...

define是编译时先进行替换,然后编译的。尽管你的define有问题,但是你的写法,在替换后并不会发生问题。就源码来说是没问题的,那么出现错误要么就是你的工程建立有问题,要么就是编译器的bug,vc6.0编译时出现问题也很常见,不必纠结这个。

牡丹花下死做鬼 发表于 2014-2-9 14:51:00

把代码贴出来 不要贴图!!!!!!

love20101518 发表于 2014-2-9 14:51:45

#include <stdio.h>

#define PRICE 30;

void main()
{
                int num,total;
                num = 10;
                total = num * PRICE;
                printf("total = %d\n",total);
}

牡丹花下死做鬼 发表于 2014-2-9 14:52:09

目测你多了个分号
宏定义后面不要加分号!

love20101518 发表于 2014-2-9 14:53:52

可以贴一个正确的嘛,我对照下,谢谢!

牡丹花下死做鬼 发表于 2014-2-9 14:54:34

宏替换之后就成了
total = num * 30;; 有两个分号了
#define PRICE 30; 就是把 PRICE全部替换成30; 我估计这还没编译应该是上一次编译的结果 如果编译下肯定报错
再次申明下次在补贴代码只贴图的话当心没人理你

love20101518 发表于 2014-2-9 14:57:28

你的意思是我的定义是把PRICE定义为常量30;而不是30是嘛?

牡丹花下死做鬼 发表于 2014-2-9 15:00:01

love20101518 发表于 2014-2-9 14:57 static/image/common/back.gif
你的意思是我的定义是把PRICE定义为常量30;而不是30是嘛?

对 老师应该是会强调宏定义不要加分号的

love20101518 发表于 2014-2-9 15:00:02

应该是#define PRICE 30没有分号
是这么理解嘛?
但是去掉分号也是一个错误,一个提醒呀!

牡丹花下死做鬼 发表于 2014-2-9 15:10:51

love20101518 发表于 2014-2-9 15:00 static/image/common/back.gif
应该是#define PRICE 30没有分号
是这么理解嘛?
但是去掉分号也是一个错误,一个提醒呀!

#include <stdio.h>

#define PRICE 30

void main()
{
        int num,total;
        num = 10;
        total = num * PRICE;
        printf("total = %d\n",total);
}




460896339 发表于 2014-2-9 16:09:31

:sweat:你可以把错误贴出来

谓我心忧 发表于 2014-2-9 16:27:27

#include <stdio.h>

#define PRICE 30

void main()
{
        int num,total;
        num = 10;
        total = num * PRICE;
        printf("total = %d\n",total);
}


话说这样是正常运行的啊LZ, 是不是在打开这个程序的同时也运行了其他程序~~~

love20101518 发表于 2014-2-9 16:55:46

我又重新建立了一个是正确的,但是把正确的代码复制到没有关闭的窗口上还是错误的...

love20101518 发表于 2014-2-9 17:53:53

谢谢!#¥%……&*!

未闻丶花名 发表于 2014-2-9 19:39:44

路过看看= =

E=MC2 发表于 2014-2-10 10:23:02

怎么我在VC++6.0上编译#define PRICE 30; 这句 有没有分号都能运行啊? 我怀疑是编译器的问题? 楼主你用的是啥编译器啊?:shock:

╰つ今生只为 发表于 2014-2-10 18:40:25

错误信息啊

bielinyitong 发表于 2014-2-11 16:39:47

#include <stdio.h>
#define PRICE 30
void main()
{
                int num,total;
                num = 10;
                total = num * PRICE;
                printf("total = %d\n",total);
}
你在宏定义中加多了;号

love20101518 发表于 2014-2-11 19:11:49

就是论坛下载的英文版的呀!这个问题我已经不纠结了,谢谢各位男神女神!
页: [1]
查看完整版本: 为什么我的是错误的呢