如何在#ifdef/#ifndef语句中用电脑名称替代ONLINE_JUDGE宏
基于自定义宏实现调试代码的切换方案
原代码逻辑
你原本通过ONLINE_JUDGE宏控制调试代码的启用:
#ifndef ONLINE_JUDGE #include "debug.h" #else #define deb(...) #endif
修改为MYPC宏的实现方案
要切换成通过自定义MYPC宏控制,只需两步:
替换核心代码
将原代码替换为以下逻辑(修正可变参数宏写法,确保语法合规):#ifdef MYPC #include "debug.h" #else #define deb(...) #endif逻辑说明:当编译环境中定义了
MYPC宏时,引入调试头文件启用功能;未定义时,deb(...)会被替换为空,调试代码不会生效。在本地环境定义
MYPC宏
根据你使用的编译工具,添加宏定义:- GCC/Clang 命令行:编译时追加
-DMYPC参数gcc main.c -o app -DMYPC - Visual Studio:右键项目 → 属性 → C/C++ → 预处理器 → 预处理器定义,添加
MYPC - CMake 项目:在CMakeLists.txt中添加宏定义
# 针对目标添加私有宏定义 target_compile_definitions(your_target_name PRIVATE MYPC)
- GCC/Clang 命令行:编译时追加
内容的提问来源于stack exchange,提问作者Kritik Manral
相关产品推荐
相关产品推荐

