这段代码是如何工作的?我如何获得此输出?

纳根德拉·卡马斯

我正在使用 c 预处理器指令。我想知道这个程序是如何工作的?

#define PRODUCT(x) (x*x)
   main()
   {
   int i=3,j;
   j=PRODUCT(i+1);
   printf("\n%d",j);
   }

输出是

7
骨干

#define PRODUCT(x) (x*x)实际上是一个宏。它的行为与通常的 C 函数不同。

宏是在编译器看到代码之前完成的简单文本替换。

因此,这里实际发生的情况可以表示为:

  1. j = PRODUCT(i+1);
  2. j = PRODUCT(3+1);
  3. 然后代码变为:j = 3+1*3+1;

    main(){
      int i = 3,j;
      j = 3+1*3+1;
      printf("\n%d",j);
    }
    
  4. 根据运算符优先级规则,它被评估为,
    • 3+(1*3)+1
    • 3+3+1
    • 7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何使用 excel 从这段代码中获得输出

来自分类Dev

这段代码是如何工作的?

来自分类Dev

如何从Codepen获得此代码以正常工作?

来自分类Dev

这段 Javascript 代码是如何工作的?

来自分类Dev

如何获得此输出

来自分类Dev

如何获得此输出?

来自分类Dev

我不明白这段代码是如何工作的?

来自分类Dev

如何更改我的代码以获得正确的输出

来自分类Dev

此C代码如何工作。我得到56作为\ 08的输出

来自分类Dev

此❤代码如何工作?

来自分类Dev

此代码如何工作?

来自分类Dev

这段代码实际上是如何工作的?

来自分类Dev

这段代码是如何工作的?(Java 递归)

来自分类Dev

递归在这段代码中是如何工作的

来自分类Dev

这段代码如何在python中工作?

来自分类Dev

这段用于增量重试的代码如何工作?

来自分类Dev

如何获得此JSON输出?

来自分类Dev

我如何才能按顺序获得此输出?

来自分类Dev

如何转换我的对象数组以获得此输出?

来自分类Dev

我如何清理这段代码使其更短?

来自分类Dev

我如何在纸上运行这段代码?

来自分类Dev

我应该如何注释掉这段代码?

来自分类Dev

我如何翻译这段 javascript 代码

来自分类Dev

我需要知道此源代码是如何生成输出的

来自分类Dev

如何获得我的代码以输出用户出售的总价?

来自分类Dev

此代码如何显示此输出?

来自分类Dev

有人可以向我解释一下这段代码是如何工作的吗?

来自分类Dev

使用可观察的。有人可以向我解释这段代码是如何工作的吗

来自分类Dev

我想了解子字符串调用在这段代码中是如何工作的?