C语言中宏定义的字符替换问题

例子:

在c语言中定义如下宏
#define M(x,y,z) x*y+z

给定如下程序

#include<stdio.h>
#include<stdlib.h> //写入system("pause");用到的头文件
#define M(x,y,z)  x*y+z
void main()
{
int a=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));
system("pause");//为了使打印出来的结果停留在电脑上显示出来
}

求输出的结果?

解析:x*y+z=a+b*b+c+c+a
把a,b,c的值带入

a+b*b+c+c+a=1+2*2+3+3+1=12

所以
该程序的打印结果为12

常见错误:误认为 x*y+z=(a+b)*(b+c)+(c+a)

c语言中宏定义的字符替换#define M(x,y,z) x*y+z相关推荐

  1. 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节

    C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...

  2. C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解

    宏定义是用一个标识符来表示一个字符串,在宏调用中将用该字符串代替宏名.给程序员提供了便利,使程序更加清晰,便于阅读和理解,进一步提高了程序的运行效率,对于嵌入式系统而言,为了能达到性能要求,宏是一种很 ...

  3. C语言中宏定义使用方法详解

    C语言中的宏替换详解 首先看一个问题: #include <stdio.h> #define    PRINT_CLINE()    printf("%d", ____ ...

  4. C语言中宏定义的使用

    1. 引言 1.1 宏定义的基本语法 1.2 宏定义的优点 1.3 宏定义的缺点 1.4 宏还是函数 2 使用宏时的注意点 2.1 算符优先级问题 2.2 分号吞噬问题 2.3 宏参数重复调用 2.4 ...

  5. C语言中宏定义和函数的取舍

    要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定 ...

  6. 在C语言中怎样定义一个字符串并输入输出

    在C语言中没有字符串类型,用字符数组处理字符串 字符数组定义:char 数组名 [常量表达式][常量表达式] 说明:一维字符数组,用于存储和处理一个字符串 .二维字符数组,用于同时存储和处理多个字符串 ...

  7. C语言中宏定义和函数的区别

    前言 在C语言中,对于一些常用或通用的代码段的封装可以有两种方式:函数和宏定义. 这篇博客就来带大家梳理一下对于这两种方式我们在使用时应该如何抉择,以及它们的区别和优缺点. 宏定义和函数的区别 从程序 ...

  8. C语言中宏定义宏编译的使用#if,#ifdef,#ifndef,#elif,#else,#endif,defined使用详解,可以实现和if else一样的效果

    #define            定义一个预处理宏 #undef            取消宏的定义 #if                   编译预处理中的条件命令,相当于C语法中的if语句 ...

  9. c语言用宏定义常量_使用宏定义常量以在C的数组声明中使用

    c语言用宏定义常量 As we know that, while declaring an array we need to pass maximum number of elements, for ...

最新文章

  1. 配置发布和禁用复制功能时提示 分发服务器未正确安装。
  2. 零基础入门学习Python(34) 面向对象
  3. 小程序首页获取数据给数组赋值,实现加载更多,以及遇到的坑
  4. 河南省第十一届ACM程序设计竞赛 修路
  5. ubuntu 20.04修改数据源配置
  6. 李安的电影梦by李安
  7. 【报告分享】5G零售行业应用白皮书.pdf(附下载链接)
  8. Linux服务器安装JavaWeb环境(三) RocketMQ,Nacos
  9. 2021年C++项目中的十大Bug:乍一看都正确的代码,实则暗藏玄机
  10. Apache Kylin在美团数十亿数据OLAP场景下的实践
  11. 濛濛有感——懂与不懂(一)
  12. c语言程序算一元二次方程,以实例跟我学C语言:如何求解一元二次方程的根
  13. 20中氨基酸名称、简写及化学式
  14. 短信验证php_php如何实现短信验证
  15. 海淀牙齿矫正:牙齿矫正的步骤
  16. 高数 08.02 可分离变量微分方程
  17. Vue3.x 深入浅出系列(连载三)
  18. 法规标准-ECE R79标准解读
  19. 安卓 linux服务器文件夹,Android系统下根目录下文件
  20. 涨知识了!苹果手机清理缓存原来这么简单,一键就能清出几个G

热门文章

  1. 【云安全】全面了解云安全
  2. 计算机功能转动怎么设定,“怎么调节电脑风扇转速”的解决方案
  3. 计算机桌面任务栏跳到,电脑任务栏跑到右边了怎么办_电脑任务栏跑到左边了怎么解决...
  4. VCS逻辑仿真工具-03——后处理:VCD+文件
  5. 代数合并同类项计算机步骤,《合并同类项》教学设计
  6. 逗你玩呢~~ 一大波AI冷笑话和漫画正在靠近
  7. 游戏机遇到来 非主流HTML5能否成器?
  8. 密钥(yao)(yue)
  9. Visual Assist X 破版解,支持VS2017
  10. Linux下重置(修改)mysql8.0密码