预处理指令的疑惑

本文探讨了预处理指令在不同编译模式下的应用及注意事项,包括未定义预处理指令的使用情况以及在release模式下Console.WriteLine函数的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用到预处理指令了就查阅msdn学习并参照例子练习了下。暂时先记录下遇到的问题。

1。预处理指令不预先定义

debug模式下#debug 则一直为true即使注释掉也能使用其他预处理指令如果不预先声明,直接判断结果不出错但是判断结果为false

2.在release下 Console.WriteLine函数无法使用

#define DEBUG
#define VC_V7
using System;
public class MyClass
{
    static void Main()
    {
#if (DEBUG && !VC_V7)
        Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V7)
        Console.WriteLine("VC_V7 is defined");
#elif (DEBUG && VC_V7)
        Console.WriteLine("DEBUG and VC_V7 are defined");
#else
        Console.WriteLine("DEBUG and VC_V7 are not defined");//在release模式下 这里会编译错误
#endif
    }
}

 

但是同样类型用#if #else #endif就可以通过?如下

#if (xx)
            Console.WriteLine("xx defined");
#else
            Console.WriteLine("xx not defined");
#endif

但是此段代码无论在debug还是release下都能正常执行 同样在未预先定义预处理指令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值