C++语法 #define 预处理
#define
预处理指令用于创建符号常量。
该符号常量通常称为宏,指令的一般形式是:
#define macro-name replacement-text
基础用法包括但不限于
#define int long long
#define INF 0x3f3f3f3f3f3f3f3f
#define ls(at) ((at) << 1)
#define sq(x) ((x) * (x))
// #define int long long 相当于把文件中的所有 int 都替换成 long long
高级一些的用法是利用 #
和 ##
运算符
#define TOSTR(x) #x
// TOSTR(q779 is sb) 等价于 "q779 is sb"
#define For(i, a, b) for(int i = (a), i##END = (b); i <= i##END; i++)
// 一个从 a 到 b 的 for 循环
实例:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF 0x3f3f3f3f3f3f3f3f
void up(int &x,int y) { x < y ? x = y : 0; }
void down(int &x,int y) { x > y ? x = y : 0; }
#define N ((int)(3))
#define TOSTR(x) #x
#define For(i, a, b) for(int i = (a), i##END = (b); i <= i##END; i++)
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
// freopen("check.in","r",stdin);
// freopen("check.out","w",stdout);
For(i, 1, 5) cout << TOSTR(Good Morning My Neighbors!) << '\n';
return 0;
}
输出:
Good Morning My Neighbors!
Good Morning My Neighbors!
Good Morning My Neighbors!
Good Morning My Neighbors!
Good Morning My Neighbors!
参考文献: