- 防止重复包含头文件
#ifndef __文件名大写_H__
#define __文件名大写_H__
#endif // __文件名大写_H__
// c++
pragma once 较老编译器不支持,
以上两种方法都行。
优缺点:
- 第一点,可以针对部分代码,所有编译器都支持。缺点时要写很多
- 第二点,代码简洁,缺点较老编译器不支持。
#if, #ifdef, #ifndef, #else, #elif, #endif
// 这些命令让编译器进行简单的逻辑控制. 当一个文件被编译时, 你可以使用这些命令使某些行保留或者是去处.
#if expression //如果表达式(expression)的值是"真"(true),那么紧随该命令的代码将会被编译.
#ifdef macro //如果"macro"已经在一个#define声明中定义了, 那么紧随该命令的代码将会被编译.
#ifndef macro //如果"macro"未在一个#define声明中定义, 那么紧随命令的代码将会被编译.
//一些小边注: 命令#elif是"elseif"的一种缩写,并且他可以想你所意愿的一样工作. 你也可以在一个#if后插入一个"defined"或者"!defined"以获得更多的功能.
//这里是一部分例子:
#ifdef DEBUG
cout << "This is the test version, i=" << i << endl;
#else
cout << "This is the production version!" << endl;
#endif
//你应该注意到第二个例子比在你的代码中插入多个"cout"进行调试的方法更简单.
标签:__,编译,macro,代码,C++,命令,编译器,预处理
From: https://www.cnblogs.com/web-linux-qin/p/16914725.html