C++程序来演示宏的功能
假设我们有一个包含多个整数值的整数数组。我们必须找出数组中最小值和最大值之间的差异。为了解决这个问题,我们必须使用宏。输入取自stdin,结果打印回stdout。
所以,如果输入像array={120,589,324,221,234},那么输出将是答案是:469
最大值589和最小值120之间的差值为469。
示例
让我们看看以下实现以获得更好的理解-
#define minmac(a, b) a = min(a, b)
#define maxmac(a, b) a = max(a, b)
#define INF ((1 << 31)-2)
#define input(a) cin >> a
#define toStr(a) string("答案是:")
#define FOO(a, b)
#define foreach(a, b) for (int i = 0; i < a.size(); ++i)
#include <iostream>
#include <vector>
using namespace std;
FOO(minmac, <)
FOO(maxmac, >)
int main(){
int n; cin >> n;
vector<int> v(n);
foreach(v, i) {
input(v)[i];
}
int mini = INF;
int maxi = -INF;
foreach(v, i) {
minmac(mini, v[i]);
maxmac(maxi, v[i]);
}
int ans = maxi - mini;
cout << toStr(答案是:) <<' '<< ans;
return 0;
}输入
5 120 589 324 221 234输出结果
答案是: 469