#定义如何工作的?对于CUBE奇怪的结果(Y)Y *(Y * Y) [英] How #define work? Strange result for CUBE(y) y*(y*y)

查看:150
本文介绍了#定义如何工作的?对于CUBE奇怪的结果(Y)Y *(Y * Y)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#include<stdio.h>
#include<conio.h>
#define CUBE(y)y*(y*y)
 main()
      {
        int j;
        j = CUBE(-2+4);
        printf("value of j = %d",j);
        getch();
      }

这code的输出是 -26 。我只是想知道这个code如何给 -26 作为输出。在这code如何的#define 的工作。我知道,的#define 的变量或方法永久性的修复价值,但做这项工作为 CUBE 这里就不怎么样。可有人请一步形容这一步,意味着简单的方法。

Output of this code is -26. I just want to know how this code give -26 as an output. How #define work in this code. I know that #define permanent fix value for a variable or method but don't how this work for CUBE here. Can somebody please describe this step by step, means in easy way.

推荐答案

它的作用:

j = -2 + 4 * (-2 + 4 * -2 + 4)

CUBE的更正确的定义是

A more correct definition of CUBE would be

#define CUBE(y) ((y)*(y)*(y))

这篇关于#定义如何工作的?对于CUBE奇怪的结果(Y)Y *(Y * Y)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆