#if 整型常量表达式1 程序段1 #elif 整型常量表达式2 程序段2 #elif 整型常量表达式3 程序段3 #else 程序段4 #endif分析下面的程序:
#include <iostream> #define NUMBER 5 int main() { #if NUMBER == 10 std::cout << "Number is equal to 10." << std::endl; #elif NUMBER == 5 std::cout << "Number is equal to 5." << std::endl; #else std::cout << "Others." << std::endl; #endif return 0; }程序的第 3 行定义 NUMBER 宏,令其等于 5。后面的代码判断是否等于相应的值,选择性地编译后面的语句,由于定义 NUMBER 等于 5,编译器输出“Number is equal to 5”。
#if defined(DEBUG) && !defined(RELEASE) // 仅当DEBUG被定义并且RELEASE没有被定义时编译 #endif
#ifdef 宏名 // #ifndef 宏名 程序段1 #else 程序段2 #endif#ifdef 判断后面的宏是否已经定义,#ifndef 判断后面的宏是否未定义,它们的含义正好相反。
#include <iostream> #define NUMBER int main() { #ifdef NUMBER std::cout << "NUMBER is defined." << std::endl; #else std::cout << "NUMBER is not defined." << std::endl; #endif return 0; }第 7 行判断是否定义 DEBUG 宏,由于它已经在第 3 行定义了,所以执行第一个 cout 语句,输出结果为:
NUMBER is defined.
本文链接:http://task.lmcjl.com/news/16219.html