宏
宏的用法很简单,可玩性也比较强。
#include <iostream>
int mian()
{
std::cin.get();
}
仅仅上述代码,运行效果就是控制台等待一个回车。
#include <iostream>
#define WAIT std::cin.get()
int mian()
{
WAIT;
}
我们用#define将代码改写,运行效果就是依旧是控制台等待一个回车。
宏就是将代码用前面的替换。在预处理阶段,编译器知道有这个宏,当检测到响应字符时就会用其替换。为什么说可玩性高呢?
#include <iostream>
#define NB {
int mian()
NB
std::cin.get();
}
这样的代码也是可以运行的,效果一样。侧面证明了宏就是复制替换。
我们可以替换数字 例如自带的#define NULL 0增加代码可读性。
========================================================================
三元操作符
#include <>
#include <>
static int Level = 1;
static int Speed = 2;
int main()
{
if(Level > 5)
Speed = 10;
else
Speed = 5;
std::cin.get();
}
我们要根据等级设定速度,在两个if语句中等级大于5则speed为10,其他情况speed为5.
我们本质上就是对Speed赋值,判断level是否大于5,然后给出两个选项。按照这个思路写代码。
#include <>
#include <>
static int Level = 1;
static int Speed = 2;
int main()
{
// if(Level > 5)
// Speed = 10;
// else
// Speed = 5;
Speed = Level >5 ? 10 :5;
std::cin.get();
}
(条件)?(为真赋值):(为假赋值)
三元操作幅对于写条件语句,可以极大加强代码可读性,减少代码量。