我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

为什么结果是10不是18


#include 
#include 
#define ADD(x) x+x
main()
{
    int m=1,n=2,k=3;
    int sum=ADD(m+n)*k;
    printf("%d",sum);
}

#define ADD(x) x+x
这不是函数,不是函数,不是函数
这就是直接的字符串替换,你先算x+x的结果再乘肯定错了呀
你替换一下看看变成什么了
int sum=ADD(m+n)*k;
替换后
int sum=x+x*k;
int sum=m+n+m+n*k;
不得先算乘法吗

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7653640

近期文章

  • idea引入maven项目,代码没问题,但是在自己的电脑爆红!
  • GD Library无法正常工作
  • 输出整数正序各位数字:为什么运行时直接输入123456,然后回车后出现的是23456呢?
  • JSON字符串转换JS对象相关问题
  • DJ音乐,pcm鼓点计算
  • 如何在NI的cRIO机箱中生成共享库
  • 将两个原数组的值按顺序赋给一个新的数组
  • ensp打开报错也不能启动AR1,如何解决?
  • Socket怎么连Http
  • 训练yolov5模型时报错fitness() takes 0 positional arguments but 1 was given
  • Doctrine ORM中的类表继承
  • c++运算符重载"<<"出错
  • 软件安装后出现的问题
  • 不是很懂出错在哪里,我搜到了一样的猜数字游戏然后代码也是一样的。显示在第十行出错
  • javaweb编辑环境搭建
  • linux安装anaconda报错
  • matlab使用parsim
  • QT使用QTextEdit显示内容过多时崩溃
  • 使用BufferedReader.readLine()读取文本文件太慢了
  • matlab遗传算法工具箱函数调用使用报错

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华