kok001 发表于 2021-11-18 16:14:57

常量减肥为什么是7而不是-8

#include<stdio.h>
#define M(x,y)x-y
int main()
{
    int a=4;
    int b=3;
    int c=5;
    printf("%d\n",a*M(b,c));
    printf("%d\n",4*(3-5));
    return 0;
}

kok001 发表于 2021-11-18 16:17:42

发的时候没注意打错字了

村里小黑 发表于 2021-11-18 16:28:19

#include<stdio.h>
#define M(x,y) x-y
int main()
{
    int a=4;
    int b=3;
    int c=5;
    printf("%d\n",a*(M(b,c)));
    printf("%d\n",4*(3-5));
    return 0;
}
#define只是简单的替代,你的第一局printf就是a*b-c,所以等于7

jhq999 发表于 2021-11-18 16:29:42

或者#define M(x,y)(x-y)
和宏展开优先级有关

wp231957 发表于 2021-11-18 17:39:38

kok001 发表于 2021-11-18 16:17
发的时候没注意打错字了

宏毕竟不是函数

kok001 发表于 2021-11-18 20:20:49

wp231957 发表于 2021-11-18 17:39
宏毕竟不是函数

0011-0101=0111

为什么呢求教

kok001 发表于 2021-11-18 20:25:47

jhq999 发表于 2021-11-18 16:29
或者
和宏展开优先级有关

明白了

kok001 发表于 2021-11-18 20:26:39

wp231957 发表于 2021-11-18 17:39
宏毕竟不是函数

感谢

wp231957 发表于 2021-11-18 21:53:07

kok001 发表于 2021-11-18 20:20
0011-0101=0111

为什么呢求教

谁告诉你的
页: [1]
查看完整版本: 常量减肥为什么是7而不是-8