炸药小碉堡 发表于 2020-12-24 16:58:05

编译问题

#include <stdio.h>

#define IF if(
#define THEN ){
#define ELSE }else{
#define FI ;}
#define INT int
#define BEGIN {
#define END }

INT main()
BEGIN
      INT i;

      printf("请输入您的年龄:");
      scanf("%d", &i);

      IF i < 18
      THEN
                printf("您未满18周岁,不得使用这个程序!\n");
      ELSE
                printf("您已满18周岁,欢迎使用本程序,嘿嘿嘿...\n");
      FI

      return 0;
END


这里的THEN为什么不能换成DO(编译显示错误),这两个不是一样的吗?
#define THEN ){
#define DO ){
FI不是代表;}吗,可是最后只有}呀,{:10_266:}

炸药小碉堡 发表于 2020-12-26 19:13:42

{:10_266:}

风过无痕1989 发表于 2020-12-26 21:53:39

你这是C程序吗?

炸药小碉堡 发表于 2020-12-27 23:08:43

风过无痕1989 发表于 2020-12-26 21:53
你这是C程序吗?

是呀

风过无痕1989 发表于 2020-12-27 23:18:28

本帖最后由 风过无痕1989 于 2020-12-27 23:22 编辑

炸药小碉堡 发表于 2020-12-27 23:08
是呀

我知道了,你全部使用宏定义了
我运行了,程序正常,没有问题

tian1234 发表于 2020-12-28 10:58:47

你这个define用的没有必要,特殊字符啥的不需要自己定义,增加阅读难度

炸药小碉堡 发表于 2020-12-31 14:04:51

tian1234 发表于 2020-12-28 10:58
你这个define用的没有必要,特殊字符啥的不需要自己定义,增加阅读难度

这是课后作业{:10_266:}

炸药小碉堡 发表于 2020-12-31 14:06:00

能回答一下问题吗{:10_277:}

风过无痕1989 发表于 2020-12-31 14:23:53

炸药小碉堡 发表于 2020-12-31 14:06
能回答一下问题吗

可能是你的编译器的问题,我改了之后,运行也是正常的,下两图分别是 VS2015 与 DEV_C++的运行输出
页: [1]
查看完整版本: 编译问题