鱼C论坛

 找回密码
 立即注册
查看: 2375|回复: 4

#define求指教

[复制链接]
发表于 2018-9-13 19:24:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
F(3+2)不应该是2*(3+2),应该先计算括号里面的嘛?优先级不是括号最高吗?

怎么是答案8?
#include <stdio.h>
#define F(n) 2*n
main()
{
        printf("%d\n",F(3+2));
        printf("%d\n",F(3));
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-13 19:29:00 From FishC Mobile | 显示全部楼层
不是,你没有括号,所以是 2*3+2 = 8
#define F(n) 2*(n)

点评

基本上,不要用宏去定义函数等,定义常数就好  发表于 2018-9-13 19:31
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-13 19:55:26 | 显示全部楼层
2*3+2
哪来的括号。。。。
是3+2又不是(3+2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-14 00:12:07 | 显示全部楼层
#include<iostream>
using namespace std;

#define f(a,b) a+b
#define F(a,b) (a+b)

int main()
{
        int a = 1, b = 2, c = 3,d = 4;
        int sum = f(a, b)*f(c, d);//  <==>a+b*c+d=11
        int sum2 = F(a, b)*F(c, d);// <==>(a+b)*(c+d)=21
        cout << sum<<endl;
        cout << sum2 << endl;
        system("pause");
        return 1;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 09:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表