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

posted @ 2021-02-22 22:04  nanfengnan  阅读(116)  评论(0编辑  收藏  举报