c - 我在 C 中的宏做错了什么?
问题描述
#include <stdio.h>
#include <stdlib.h>
#define MAXIMUM(a,b) (a>b ? a:b)
#define MAX(a,b,c) (MAXIMUM(MAXIMUM(a,b),c))
#define MINIMUM(a,b) (a<b ? a:b)
#define MIN (a,b,c) (MINIMUM(MINIMUM(a,b),c))
#define MID(a,b,c) (MAX(a,b,c)+ MIN(a,b,c))/2
int main()
{
int a=0; int b=0; int c=0;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
float t = MID(a,b,c);
printf("%f\n",t);
return 0;
}
我得到的错误是
left operand of comma has no operator in #define MID(a,b,c)
The expression cannot be used as a function in #define MIN
解决方案
哦!我知道你的问题是什么:
#define MIN (a,b,c) (MINIMUM(MINIMUM(a,b),c))
应该
#define MIN(a,b,c) (MINIMUM(MINIMUM(a,b),c))
预处理器对空格敏感;MIN
令牌和它的参数列表之间不能有任何空格(a,b,c)
推荐阅读
- android - Android Studio - 尝试读取 zip 文件时如何修复内部错误
- asp.net - 在 asp:GridView asp:SQLDataSource 中使用 BoundFields 更新导致 System.ArgumentException PageValidation 错误
- javascript - jquery Bootstrap表单验证不起作用
- gcc - 不支持的指令“.stabs”
- android - Android 插件保护不存在
- asp.net-mvc - 如何在 mvc 中将查询表单详细信息发送到电子邮件
- linux-kernel - “检测到带有损坏的.inst的汇编程序”是什么意思?
- python-3.x - Python在word文档中搜索特定表格
- facebook - Graph Api - 管理多个 Facebook 帐户
- html - HTML - 使用逗号分隔动态拆分数组值