You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在#ifdef/#ifndef语句中用电脑名称替代ONLINE_JUDGE宏

基于自定义宏实现调试代码的切换方案

原代码逻辑

你原本通过ONLINE_JUDGE宏控制调试代码的启用:

#ifndef ONLINE_JUDGE
#include "debug.h"
#else
#define deb(...)
#endif

修改为MYPC宏的实现方案

要切换成通过自定义MYPC宏控制,只需两步:

  1. 替换核心代码
    将原代码替换为以下逻辑(修正可变参数宏写法,确保语法合规):

    #ifdef MYPC
    #include "debug.h"
    #else
    #define deb(...)
    #endif
    

    逻辑说明:当编译环境中定义了MYPC宏时,引入调试头文件启用功能;未定义时,deb(...)会被替换为空,调试代码不会生效。

  2. 在本地环境定义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)
      

内容的提问来源于stack exchange,提问作者Kritik Manral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:09:23