刘斩仙 发表于 2023-6-5 20:16:14

我这个程序可以吗

#include <stdio.h>

#define OI 0.5
#define F(a) OI*d+f*OI+2*OI*a
#define F(b) OI*3*1.3+OI/2*2.4+5*OI*g
#define F(c) 10*OI*g+20*OI*l
int main()
{
       float a=3.7;
       int b=7;
       float c=1.3;
       int d=8;
       float e=2.4;
       int f=9;
       float g=6.3;
       float l=0.5;

       printf("小明需要支付%.2f\n",F(a));
       printf("小红需要支付%.2f\n",F(b));
       printf("小甲鱼需要支付%.2f\n",F(c));
       
       return 0;
}

sfqxx 发表于 2023-6-5 20:38:08

{:10_275:}

zhangjinxuan 发表于 2023-6-5 21:17:46

在您的代码中,F 进行了重定义,这样的码风不是很好。

刘斩仙 发表于 2023-6-5 21:20:01

zhangjinxuan 发表于 2023-6-5 21:17
在您的代码中,F 进行了重定义,这样的码风不是很好。

那要怎么做

zhangjinxuan 发表于 2023-6-5 21:21:39

刘斩仙 发表于 2023-6-5 21:20
那要怎么做

可以更改不同 F 宏函数的名称,例如 F1, F2, F3:


#include <stdio.h>

#define OI 0.5
#define F1(a) OI*d+f*OI+2*OI*a
#define F2(b) OI*3*1.3+OI/2*2.4+5*OI*g
#define F3(c) 10*OI*g+20*OI*l
int main()
{
         float a=3.7;
         int b=7;
         float c=1.3;
         int d=8;
         float e=2.4;
         int f=9;
         float g=6.3;
         float l=0.5;

         printf("小明需要支付%.2f\n",F1(a));
         printf("小红需要支付%.2f\n",F2(b));
         printf("小甲鱼需要支付%.2f\n",F3(c));
         
         return 0;
}

重定义可能会导致代码可读性变差,引发各种问题,建议不要使用。
页: [1]
查看完整版本: 我这个程序可以吗