定义此C宏的正确方法是什么?

罗希普
#include <stdio.h>
#define ABS(a)  (a) < 0 ? -(a) : (a)
int main(void)
{
  printf("%d\n", ABS(-3) + 1);
  return 0;
}

赫伯特·希尔尔德(Herbert Schildt)的书中的这段代码片段看起来将产生输出,4但实际上会输出3为什么?

我如何解决它?

Cacho Santa

展开您的宏:

#define ABS(a)  (a) < 0 ? -(a) : (a)

printf("%d\n", ABS(-3) + 1);

printf("%d\n", (-3) < 0 ? -(-3) : (-3) + 1); // you can get this with **gcc -E source.c

printf("%d\n", (-3) < 0 ? 3 : -2); //read about precedence to understand this step.

printf("%d\n", 3);

这是为什么打印的分步说明3您需要使用适当的括号对其进行修复。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在类定义的开头,此宏的作用是什么?

来自分类Dev

解决此警告的正确方法是什么?

来自分类Dev

解释此代码的正确方法是什么?

来自分类Dev

进行此布局的正确方法是什么?

来自分类Dev

实现此自定义 priority_queue 的正确方法是什么

来自分类Dev

此C结构定义的优点是什么?

来自分类Dev

从符号列表构造clojure宏的正确方法是什么?

来自分类Dev

定义变量的正确方法是什么?

来自分类Dev

定义 BaseActivity 的正确方法是什么

来自分类Dev

它是什么?C ++宏功能?如何替换此宏?我可以举个例子吗?

来自分类Dev

编写此函数的正确(有效)方法是什么?

来自分类Dev

在MySQL模式中存储此数据的正确方法是什么?

来自分类Dev

setNeedsDisplay不够快(执行此操作的正确方法是什么?)

来自分类Dev

使用pyqt进行此操作的正确方法是什么?

来自分类Dev

在AngularJS代码中使用此扩展的正确方法是什么?

来自分类Dev

编写此多条件if语句的正确方法是什么?

来自分类Dev

授权此REST API请求的“正确方法”是什么?

来自分类Dev

在MySQL模式中存储此数据的正确方法是什么?

来自分类Dev

jQuery修复此`closure'的正确方法是什么

来自分类Dev

格式化此grep的正确方法是什么?

来自分类Dev

在 emacs 中定义定义键的正确方法是什么

来自分类Dev

在Managed C ++中,在类中定义静态单例实例的正确方法是什么?

来自分类Dev

在C ++中定义Typecast运算符模板的正确方法是什么

来自分类Dev

正确的方法是什么?

来自分类Dev

定义宏时`(...)`是什么意思?

来自分类Dev

用C#解析此日期格式“ EDT 2013 Mon Oct 07 00:00:00 EDT”的正确方法是什么?

来自分类Dev

调用此函数并通过segue传递此数组的正确方法是什么?

来自分类Dev

在JSON模式中定义键值对的正确方法是什么

来自分类Dev

为该模块添加类型定义的正确方法是什么

Related 相关文章

  1. 1

    在类定义的开头,此宏的作用是什么?

  2. 2

    解决此警告的正确方法是什么?

  3. 3

    解释此代码的正确方法是什么?

  4. 4

    进行此布局的正确方法是什么?

  5. 5

    实现此自定义 priority_queue 的正确方法是什么

  6. 6

    此C结构定义的优点是什么?

  7. 7

    从符号列表构造clojure宏的正确方法是什么?

  8. 8

    定义变量的正确方法是什么?

  9. 9

    定义 BaseActivity 的正确方法是什么

  10. 10

    它是什么?C ++宏功能?如何替换此宏?我可以举个例子吗?

  11. 11

    编写此函数的正确(有效)方法是什么?

  12. 12

    在MySQL模式中存储此数据的正确方法是什么?

  13. 13

    setNeedsDisplay不够快(执行此操作的正确方法是什么?)

  14. 14

    使用pyqt进行此操作的正确方法是什么?

  15. 15

    在AngularJS代码中使用此扩展的正确方法是什么?

  16. 16

    编写此多条件if语句的正确方法是什么?

  17. 17

    授权此REST API请求的“正确方法”是什么?

  18. 18

    在MySQL模式中存储此数据的正确方法是什么?

  19. 19

    jQuery修复此`closure'的正确方法是什么

  20. 20

    格式化此grep的正确方法是什么?

  21. 21

    在 emacs 中定义定义键的正确方法是什么

  22. 22

    在Managed C ++中,在类中定义静态单例实例的正确方法是什么?

  23. 23

    在C ++中定义Typecast运算符模板的正确方法是什么

  24. 24

    正确的方法是什么?

  25. 25

    定义宏时`(...)`是什么意思?

  26. 26

    用C#解析此日期格式“ EDT 2013 Mon Oct 07 00:00:00 EDT”的正确方法是什么?

  27. 27

    调用此函数并通过segue传递此数组的正确方法是什么?

  28. 28

    在JSON模式中定义键值对的正确方法是什么

  29. 29

    为该模块添加类型定义的正确方法是什么

热门标签

归档