c/c++的条件编译语句
#include<iostream>
#line 20 "a.cpp" //定义此时__LINE__为20,当前文件名字是a.cpp
using namespace std;
/*
c/c++预定义变量:可以在任何程序中直接使用
1.__LINE__变量:表示当前行(在第几行出现就是第几行)
2.__FILE__变量:当前执行的文件名字
3.__TIME__变量:当前的时间,格式是;hour:minute:second
4.__DATE__变量:当前的日期,格式是:month/day/year
预处理指令:
1.#line line_number "filename"
作用:用于定义当前行的__LINE__值,和定义当前文件名
2.#include <filename> 或者 #include "filename"
作用:本命令包含一个文件并在当前位置插入
3.#if,#ifdef,#ifndef,#else,#elif,#endif #条件汇编语句,用来在处理不同环境下的编译情况
作用:这些命令用于让编译器进行简单的逻辑判断 符合条件则编译语句
1.#if ~~ #endif系列
#if 整型常量表达式(只能是整形常量)
#elif == #else if
#ifdef 变量名 //表示变量由#define 定义了,当前语句是对的
#endif 用于结尾
eg:固定格式
#if 1
cout<<1<<endl;
#elif 2
cout<<2<<endl;
#else //可省略
cout<<"other"<<endl;
#endif //必须有
2.#ifdef/#ifndef系列
作用:如果当前的宏已被定义过,则对“程序段1”进行编译,否则对“程序段2”进行编译。
#ifdef 宏名
程序段1
#else
程序段2
#endif
3.#if和#ifdef的区别
#if后面是整形常量表达式
#ifdef/#ifndef后面是只能是宏名(#define 定义的)
*/
#define NUM1 10
int main()
{
#if NUM1 == 10
cout<<1<<endl;
#elif 2
cout<<2<<endl;
#else
cout<<"other"<<endl;
#endif
cout<<"当前行是:"<<__LINE__<<endl;
cout<<"本文件名是:"<<__FILE__<<endl;
cout<<"现在的时间是:"<<__DATE__<<" "<<__TIME__<<endl;
return 0;
}
reference:http://c.biancheng.net/view/1986.html