第三章练习题

来源:1-1 2020重C++ 课程导学

RiyaSanyal

2021-08-04

老师您好,我想请教下

#define MIN(a,b) (a)<(b) ?(a):(b)
#include<iostream>
using namespace std;
int main() {
	int A = 15, B = 9;
	int  C = 0;
	cout << MIN(A, B) << endl;
}
#define MIN(a,b) (a)<(b) ?(a):(b)
#include<iostream>
using namespace std;
int main() {
	int A = 15, B = 9;
	int  C = 0;
	cout << MIN(15, 9) << endl;
}

为什么这两次都显示 “这里严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0020 未定义标识符 “(a” jack2 C:\Users\jack\source\repos\jack1\jack2\源.cpp 7”
这里是出现了什么问题吗

写回答

1回答

quickzhao

2021-08-05

宏的语法一定要小心,不熟悉不建议使用,很难排错。你修改下试试:

#define MIN(a,b) ( (a) < (b) ? (a) : (b) )

1
2
quickzhao
回复
RiyaSanyal
宏替换的本质是字符直接替换。不加括号在引入其他运算符号的情况下可能会解析错乱。
2021-08-05
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程

相似问题