MST

星途 面试题库

面试题:C++中#if!defined宏嵌套使用基础

请编写一段C++代码,利用#if!defined宏的嵌套,实现根据不同的编译配置选项,选择性编译不同的代码块。要求至少有两层宏嵌套,例如当定义了`DEBUG`宏时,再根据是否定义`LOG_LEVEL`宏,选择编译不同的日志输出代码。
39.7万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 假设这里通过编译选项定义或未定义DEBUG宏
// 例如:在编译命令中添加 -DDEBUG 来定义DEBUG宏

// 假设这里通过编译选项定义或未定义LOG_LEVEL宏
// 例如:在编译命令中添加 -DLOG_LEVEL 来定义LOG_LEVEL宏

int main() {
#if!defined(DEBUG)
    std::cout << "非调试模式" << std::endl;
#else
    // 这里是DEBUG模式下的代码
#if!defined(LOG_LEVEL)
    std::cout << "DEBUG模式,但未定义LOG_LEVEL,简单日志输出" << std::endl;
#else
    std::cout << "DEBUG模式且定义了LOG_LEVEL,详细日志输出" << std::endl;
#endif
#endif
    return 0;
}