本节对c++的宏定义进行描述。c++使用预处理器来对宏进行操作,我们可以写一些宏来替换代码中的问题,c++的宏是以#开头,预处理器会将所有的宏先进行处理,之后在通过编译器进行编译。宏简单说就是文本替换,可以替换代码中的任何东西,因此过度使用宏会降低代码的可读性。
#include <iostream>
#define WAIT std::cin.get();
int main()
{
//使用WAIT替换std::cin.get();这行语句,但不建议这样写,降低代码的可读性,只是举例用
WAIT
}
#include <iostream>
#define LOG(x) std::cout << x << std::endl;
int main()
{
LOG("Hello World!")
std::cin.get();
}
#include <iostream>
//只在DEBUG模式下打印log,release模式下不打印
#ifdef _DEBUG
#define LOG(x) std::cout << x << std::endl;
#else
#define LOG(x)
#endif
int main()
{
LOG("Hello World!")
std::cin.get();
}
#include <iostream>
//只在DEBUG模式下打印log,release模式下不打印
#if _DEBUG == 1
#define LOG(x) std::cout << x << std::endl;
#elif defined(NDEBUG)
#define LOG(x)
#endif
int main()
{
LOG("Hello World!")
std::cin.get();
}