程序中的小技巧 预处理器指令

预处理器指令指导编译器在实际编译开始之前对信息进行预处理。

所有的预处理器指令都是以 # 开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。

define 预处理器指令创建符号常量。

#define 允许您定义一个符号,这样,通过使用符号作为传递给 #if 指令的表达式,表达式将返回 true。

#define PI
using System;
namespace PreprocessorDAppl
{
   class Program
   {
      static void Main(string[] args)
      {
         #if (PI)
            Console.WriteLine("PI is defined");
         #else
            Console.WriteLine("PI is not defined");
         #endif
         Console.ReadKey();
      }
   }
}

被编译后 产生下列结果:

PI is defined

条件指令

您可以使用 #if 指令来创建一个条件指令。条件指令用于测试符号是否为真。如果为真,编译器会执行 #if 和下一个指令之间的代码。

条件指令的语法:

#define DEBUG
#define VC_V10
using System;
public class TestClass
{
   public static void Main()
   {

      #if (DEBUG && !VC_V10)
         Console.WriteLine("DEBUG is defined");
      #elif (!DEBUG && VC_V10)
         Console.WriteLine("VC_V10 is defined");
      #elif (DEBUG && VC_V10)
         Console.WriteLine("DEBUG and VC_V10 are defined");
      #else
         Console.WriteLine("DEBUG and VC_V10 are not defined");
      #endif
      Console.ReadKey();
   }
}

被编译后 产生下列结果:

DEBUG and VC_V10 are defined

您也可以用括号把符号和运算符进行分组。条件指令用于在调试版本或编译指定配置时编译代码。一个以 #if 指令开始的条件指令,必须显示地以一个 #endif 指令终止。

时间: 2024-08-08 12:56:18

程序中的小技巧 预处理器指令的相关文章

C预处理器及预处理器指令

预处理器: 编译程序之前,先由预处理器检查程序,根据程序中使用的预处理器指令,预处理器用符号缩略语所代表的内容替换程序中的缩略语. 预处理器可以根据包含其他文件,还可以选择让编译器处理哪些代码,预处理器不能理解C,它一般是接受一些文本并将其转换成其他文本 1.#define 的用法 定义: 宏 #define  预处理指令  可出现在源文件的任何地方 指令定义的作用于从定义出现的位置开始直到文件的结尾. 预处理器在程序中发现了宏的实例后,总会用实体代替该宏,从宏变成最终的替换文本的过程称为宏展开

C#中的预处理器指令

C#中有许多名为“预处理器指令”的命令.这些命令从来不会转化为可执行代码中的命令,但会影响编译过程的各个方面. 例如,使用预处理器指令可以禁止编译器编译代码的某一部分.如果计划发布两个版本的代码,即基本版本和拥有更多功能的企业版本,就可以使用这些预处理器指令.在编译软件的基本版本时,使用预处理器指令可以禁止编译器编译与额外功能相关的代码. 另外,在编写提供调试信息的代码时,也可以使用预处理器指令.实际上,在销售软件时,一般不希望编译这部分代码. 预处理器指令的开头都有符号#. C++开发人员应知

C#预处理器指令之#define/#undefine/#if/#elif/#else/#endif

预处理器命令的功能非常强大,在编程过程中的使用也非常广泛,比如在版本发布中使用非常方便: 1,#define(告诉编译器存在给定名称的符号)    #undefine(删除符号) 2,#if    #elif    #else    #endif #define本身没有什么作用,一般与其他预处理器指令配合使用(#if) 使用#define 告诉编译器存在给定的符号 在VS中添加名称符号 在Unity使用 ----使用#define 告诉编译器存在给定的符号--------------------

一些C#预处理器指令

像C语言一样,C#有一些预处理器指令的命令.例如,#if#end if,#define等,所谓这些命令是指不会转化为可执行代码中的一些命令,只是在编译的过程中起作用.下面简要介绍一下:1 .#define和 #undef#define的用法如下所示:#define DEBUG 它告诉编译器存在给定名称的符号,在本例中是DEBUG.这有点类似于声明一个变量,但这个变量并没有真正的值,只是存在而已.这个符号不是实际代码的一部分,而只在编译器编译代码时存在.在C#代码中它没有任何意义.#undef正好

C#预处理器指令 ,你造吗??? (●'?'●)

什么是c#预处理指令?? 用于在 C# 源代码中嵌入的编译器命令. C#预处理器指令有哪些?? ↓↓↓这些就是预处理器指令啦 下面我们一一道来(●'?'●) 1.#if ,#elif,#else,endif  c#编译的第一步就是预处理,这一步中,根据源程序中#开头的指令(预处理指令)进行处理. 例如: 首先,预处理首先扫描到#define Debug1,预处理器得知你定义了Debug1紧接着,预处理接着扫描到#if Debug1,因为已经定义了Debug1,所以这个条件成立,预处理器将Syst

C#预处理器指令

C#有许多名为预处理器指令的命令.这些命令从来不会转化为可执行代码中的命令,但会影响编译过程的各个方面. 例如,使用预处理器指令可以禁止编译器编译代码的某工部分.如果计划发布两个版本的代码,即基本版本和拥有更多功能的企业版本, 就可以使用这些预处理器指令.在编译软件的基本版本时,使用预处理器指令可以禁止编译器编译 与额外功能相关的代码.另外,在编写提供调试信息的代码时,也可以使用预处理器指令. #define和#undef #define的用法如下所示: #define DEBUG它告诉编译器存

C#预处理器指令【转】

本文转载自:http://www.cnblogs.com/miffylf/p/4005223.html C#有许多名为预处理器指令的命令.这些命令从来不会转化为可执行代码中的命令,但会影响编译过程的各个方面. 例如,使用预处理器指令可以禁止编译器编译代码的某工部分.如果计划发布两个版本的代码,即基本版本和拥有更多功能的企业版本, 就可以使用这些预处理器指令.在编译软件的基本版本时,使用预处理器指令可以禁止编译器编译 与额外功能相关的代码.另外,在编写提供调试信息的代码时,也可以使用预处理器指令.

c语言中条件编译相关的预编译指令

一. 内容概述 本文主要介绍c语言中条件编译相关的预编译指令,包括#define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. 二.条件编译 条件编译是根据实际定义宏(某类条件)进行代码静态编译的手段.可根据表达式的值或某个特定宏是否被定义来确定编译条件. 最常见的条件编译是防止重复包含头文件的宏,形式跟下面代码类似: 1 #ifndef ABCD_H 2 #define ABCD_H 3 4 // ... some declarat

Linux以及Android开发中的小技巧和长繁命令记录收集

不断更新收集中.... 2014071743 ssh以nx_guest的身份登录到172.24.221.137,然后在172.24.221.137与172.24.61.252的8080端口建立网络连接,同时创建端口为5678的本地代理服务 ssh -C -f -N -o 'TCPKeepAlive=yes' -L 5678:172.24.61.252:8080 [email protected] 反编译android下的二进制程序 ./prebuilts/gcc/linux-x86/arm/ar