• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

宏定义的问题

蓝蓝的天 2016-04-06 浏览量:1338
收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 在STM32上试了下,编译不过。

    猜测,可以与编译器是有关的。也可能是作者错了。

    • 发布于 2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:22
  • #define LED 1,0  可以这么用么?
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,我试了,编译没问题。
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • UTIL_ARG1(1,0)  用这个测试应该是对的吧
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以编译通过?我怎么编译不通过呢?
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 把 1,0直接代入不用LED这个宏呢?
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 我用gcc编译


    UTIL_ARG1有两个参数,但是中有LED一个参数。

    可能不同的编译器,对这样的错误有不一样的处理方法。

    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • VS2010

    结果与你的也是一样的,是OK

    但有个警告

    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个怎么可能是反的? 这个打印输出的就是NO吧
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 我用的VS2010会有警告唉
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • if(UTIL_ARG1(LED)==0)
    printf("OK!");
    else

    printf("NO!");

    打印的是OK,    但我感觉应该是NO!

    反之亦然。这本书是shaoziyang写的,希望他看到。

    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 额,那应该让他看一下~
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 你在单片机上试了么?

    用LED,看看结果是个什么

    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 现在手上没有AVR单片机,试不了
    • 发布于2016-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • #define LED 1,0这个编译器会默认为LED ==1,0会被抛掉

    #define UTIL_ARG1(a,b) a
    #define UTIL_ARG2(a,b) b

    这两个宏啥不直接用这样的定义呢?

    #define UTIL_ARG1(a)  a
    #define UTIL_ARG2(b)  b


    • 发布于2016-04-07
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

宏定义的问题