A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 每天进步一点点 于 2014-6-5 12:17 编辑

为什么#if与第一个大括号在同一行时会报错
而不在同一行时正确

正确代码
  1. #include<stdio.h>
  2. #define A 10
  3. int main()
  4. {
  5.     #if(A==10)
  6.     printf("A是10\n");
  7.     #else
  8.     printf("A是其他值\n");
  9.     #endif
  10.     return 0;


  11. }
复制代码

错误代码
  1. #include<stdio.h>
  2. #define A 10
  3. int main()
  4. {   #if(A==10)
  5.     printf("A是10\n");
  6.     #else
  7.     printf("A是其他值\n");
  8.     #endif
  9.     return 0;


  10. }
复制代码

运行完后会出现如下错误




评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

2 个回复

倒序浏览
1、如果你要用预编译的话  那你必须把#作为本行语句的第一个字符
2、预编译的判断语句所在行 只能有预编译指令所需的内容  不能有其他的 否则编译器无法识别
3、这种if else语句 不建议你用预编译- -  有很多时候会让你不由自主的去用正常的 if else

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
夏沫的黄昏′ 发表于 2014-6-3 20:50
1、如果你要用预编译的话  那你必须把#作为本行语句的第一个字符
2、预编译的判断语句所在行 只能有预编译 ...

谢谢,知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马