题目代码如下

# include<stdio.h>
# define MUL1(x,y)x*y
# define MUL2(x,y)(x)*(y)
# define MUL3(x,y)(x*y)
main(){int m=2,n=3;printf("%d\n", MUL1(m,m+n)*5);printf("%d\n", MUL2(m,m+n)*5);printf("%d\n", MUL3(m,m+n)*5);
}

请预测输出的三个数值

结果为19,50,35

是不是人傻了,我在网上找半天都没找到解析,烦的一批,只好自己探究规律了。

经过几分钟的研究,我结合能找到的资料大致推测出计算规则如下

# define MUL1(x,y)x*yprintf("%d\n", MUL1(m,m+n)*5);

这一组语句可以理解为x*x+y*5

# define MUL2(x,y)(x)*(y)printf("%d\n", MUL2(m,m+n)*5);

这一组语句可以理解为x*(x+y)*5

# define MUL3(x,y)(x*y)printf("%d\n", MUL2(m,m+n)*5);

这一组语句可以理解为(x*x+y)*5

我也不是太懂,如果有大佬看到,麻烦在评论区给大家普及一下

C语言编译预处理#define(x,y)语句中x*y 、(x)*(y)、(x*y)的问题相关推荐

  1. 2.c语言编译预处理,c语言第03章-编译预处理2.ppt

    c语言第03章-编译预处理2 第3章 编译预处理 编译预处理是指,编译时,首先对编译预处理命令进行处理,然后再将预处理后的中间结果进行编译,以得到目标代码. 教学目的: 掌握#define.#incl ...

  2. c语言预处理命令12个,C语言编译预处理和预处理命令

    1.预处理概念:编译程序时,编译器将对程序文件作至少两个阶段的编译预处理,预处理程序预处理阶段和编译程序预处理阶段. 预处理程序预处理阶段:C预处理程序先于C编译程序运行.预处理程序从前向后根据预处理 ...

  3. c语言 switch 单引号,在switch语句中表示单引号的错误

    我必须删除文件中的所有注释.引号内的注释分隔符应视为文本,并且必须打印到屏幕上.评论内的评论被视为其他评论,必须删除.在switch语句中表示单引号的错误 我在遇到下面的switch语句时遇到了单引号 ...

  4. c语言编译预处理指令大全,C语言预处理指令

    「今天是学习C语言第 32 天」 当你选择了一种语言,意味着你还选择了一组技术.一个社区.--Joshua Bloch # 预处理 C语言源程序先经过预处理器进行预处理,之后经过编译器编译成二进制可执 ...

  5. c语言编译kbhit出现问题,在VC++中运行出现error C2065: 'kbhit' : undeclared identifier,什么意思?怎么调试?...

    在VC++中运行出现error C2065: 'kbhit' : undeclared identifier,什么意思?怎么调试?0 yareate2013.04.08浏览493次分享举报 #defi ...

  6. C语言逗号表达式在for循环语句中的使用

    先直接举出逗号表达式一般的例题 #include <stdio.h> void main(){int a;printf("%d\n",(a=3*5,a*4,a+5)); ...

  7. R语言使用ODBC连接数据库PostgreSQL查询语句中含有处理方法

    2019独角兽企业重金招聘Python工程师标准>>> #无法查询,表名称不正确 > result <- sqlQuery(PostgreSQLConnection,&q ...

  8. c语言 case常量表达式,在switch语句中,每一个case的常量表达式的值必须互不相同。()...

    值必不属特性真正质量的是以下于手机的. <安八十条规全生>第定产法,句中构成的犯罪,2万)万投资下的对个人经人处罚款营的元以元以上(,刑事追究责任够刑罚的依法尚不事处. 密集安部他特型的国 ...

  9. 宏定义处理特殊字符 -_c语言编译与预处理命令

    所谓预处理,是指源文件在进行编译的第一遍扫描之前所作的工作,由预处理程序完成.当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分进行处理,处理完毕自动进入对源程序的编译. 在前面 ...

  10. picf509c语言程序,樊媛媛c语言程序设计09编译预处理.pptx

    樊媛媛c语言程序设计09编译预处理 9.1 宏定义 1.不带参的宏定义用一个指定的标识符(宏名)代表一个字符串.一般形式:#define 标识符 字符串如:#define PI 3.1415926有了 ...

最新文章

  1. 介绍三种绘制时间线图的方法
  2. Git问题Everything up-to-date解决
  3. C#中几种换行符,不同操作系统各不相同【转】
  4. win32 API 遍历一个目录下的文件
  5. 计算机2级access,计算机二级-Access-窗体的设计视图
  6. Scala - 快速学习08 - 函数式编程:高阶函数
  7. CSS/DIV网页设计视频教程目录【转】
  8. java 方法注解_使用Java注解不正确的方法
  9. 优酷html5视频网站,国内主要视频网站的嵌入方式
  10. SAS基础练习(一)
  11. PhotoShop插件的开发
  12. Win7系统屏保也可以当桌面壁纸
  13. 计算机主板纽扣电池缺电,主板的纽扣电池没电了怎么更换
  14. 华为服务器管理工具uMATE
  15. 零基础的小白入门,SQL数据库与Python先学哪个更好呢?
  16. [SCOI2014]方伯伯的玉米田
  17. 社会人文跨计算机考研,各位跨专业考研党,不要违反这个规则,不然结果会让人遗憾...
  18. r语言中将茎叶图旋转90度_R语言(02)绘图
  19. java计算机毕业设计商场VIP管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  20. Python中字符串的迷幻操作-----驻留机制的理解

热门文章

  1. 计算机音乐苹果手机,iPhone手机音乐如何导出电脑?
  2. 用.net制作排序、分页及多条记录选择及删除的范例(不用.net内置的分页和排序机制)
  3. 记大三第一学期10-1出游宜昌
  4. android跑马灯效果不起作用,Android实现跑马灯效果的方法
  5. 简单的一种图像冷暖色温转换(MATLAB)
  6. Linux/ Unix 键盘检测程序
  7. [Objective-C] 010_Foundation框架之NSSet与NSMutableSet
  8. C# async / await 任务超时处理
  9. IT 女生对未来职业的一点思考
  10. Java 八皇后游戏