C#预处理器命令

在最开始接触预处理指令时,是使用#region和#endregion,可以折叠代码块,方便查看。使用它可以将隶属于一个小模块的内容放到一起,折叠起来,只有在查看的时候再打开,有强迫症的应该会很喜欢。看书刚好翻到了这,就把这部分记录下来,给自己提个醒。

预处理器指令不会转化为可执行代码,而是影响代码的编译过程,可以有选择性的进行编译,这里就有一个条件编译的概念。按我的理解,就是可执行文件生成后,预处理器命令就不存在了,它影响的是生成可执行文件的过程,它告诉编译器哪些代码需要编译,哪些代码不需要。它不会修改代码的功能,但它可以在编译阶段指定哪一部分代码进行编译,也就是最终生成的可执行文件中具有怎样的功能。它的作用在编译时得到体现。

  1. #define和#undef:作用是告诉编译器存在给定名称的变量,也就相当于普通的变量定义,可以和其他命令一起完成条件编译
  2. #if,#elif,#else,#endif:通过判断#define定义的变量,有选择性的编译代码块,从而达到条件编译的目的
  3. #warning和#error:可以通过这两个指令来判断预处理器命令是否正常书写,有无逻辑错误,warning还可以提醒执行某个操作。
  4. #region和#endregion:定义:将一段代码标记为有给定名称的一个块,作用是可以被某些编辑器识别,从而实现更好的布局。就我而言,就是用来折叠代码块的。#
  5. #line:改变编译器在警告和错误信息中显示的文件名和行号信息
  6. #pragma:抑制或还原指定的编译警告

总的来说,1,2,3条可以用来实现条件编译。4折叠代码块,56就目前而言,我没看出来有多大的作用。

C#不止可以使用预处理命令完成条件编译,但C#还可以通过Conditional特性来实现,以现在来看,后种方式反而更是一种趋势。

时间: 2024-10-14 08:16:47

C#预处理器命令的相关文章

C语言预处理器命令详解【转】

本文转载自:http://www.cnblogs.com/clover-toeic/p/3851102.html 一  前言 预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置. 预处理是C语言的一个重要功能,它由预处理程序负责完成.当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译. C语言提供多种预处理功能,主要处理#开始的预编

C语言预处理器的几个命令

C语言预处理器是个简单的的宏处理器,预处理器用特殊的命令行控制,这些命令行以#开头,不包含预处理器命令的行称为源程序文本行.预处理器通常从源文件中删除所有预处理器命令行,并按预处理器命令指示对源文件进行其它转换,然后,得到的经过预处理的源文本成为有效C语言程序. 下面是常见的预处理器命令: #define--定义预处理器宏,如果是函数式宏定义,左括号与宏名之间不能有空格,所有参数及整个宏替换最好分别放在圆括号里,参数可以是可变参数表,以...表示,用__VA_ARGS__替换,传人参数包含自赠自

C预处理器

C预处理器是一种简单的宏处理器. 预处理器是由特殊的预处理器命令行控制的,它们是以#符号开头的源文件行. 预处理器的一般操作:从源文件中删除所有的预处理器命令行,并在源文件中执行这些预处理器命令所指定的转换操作 预处理器代码行的语法与C语言其他部分的语法是完全独立的,但经过预处理所产生的源代码必须在上下文环境中合法 常见的预处理器命令: #define  定义一个预处理器宏   #undef     取消一个预处理器宏 #include   插入另一个源文件的文本 #if        测试一个

(转载)虚幻引擎3--9掌握虚幻技术UnrealScript 预处理器

第九章 – UNREALSCRIPT预处理器 9.1概述 9.2 MACRO(宏)的基础知识 指南 9.1 –您的第一个宏 9.3具有参数的宏 指南 9.2 –       MACRO参数 9.4内置宏 DEFINE IF/ELSE/ENDIF 实例:         IF/ELSE/ENDIF的应用 INCLUDE ISDEFINED/NOTDEFINED 示例: 结合使用         IF/ELSE/ENDIF 和 ISDEFINED/NOTDEFINED UNDEFINE LOG/WA

Microsoft Visual C++ 6.0预处理器参考手册

返回总目录 Microsoft Visual C++ 6.0 预处理器参考手册 目录引言.......................................................................................................................3 特殊术语.................................................................................

(转载)虚幻引擎3--第九章 – UNREALSCRIPT预处理器

第九章 – UNREALSCRIPT预处理器 9.1概述 9.2 MACRO(宏)的基础知识 指南 9.1 –您的第一个宏 9.3具有参数的宏 指南 9.2 – MACRO参数 9.4内置宏 DEFINE IF/ELSE/ENDIF 实例: IF/ELSE/ENDIF的应用 INCLUDE ISDEFINED/NOTDEFINED 示例: 结合使用 IF/ELSE/ENDIF 和 ISDEFINED/NOTDEFINED UNDEFINE LOG/WARN LOGD ASSERT 示例:验证条件

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

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

C基础知识(10):预处理器

C预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤.简言之,C预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理. 所有的预处理器命令都是以井号(#)开头.它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始. (1) 预处理器实例 1 // 包含一个源代码文件(从系统库中获取 stdio.h,并添加文本到当前的源文件中) 2 #include <stdio.h> 3 4 // 定义宏(把代码中所有的FILE_SIZE替换为20)

22.预处理器

//C预处理器 /* C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤. 简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理. 我们将把 C 预处理器(C Preprocessor)简写为 CPP. 所有的预处理器命令都是以井号(#)开头. 它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始. 下面列出了所有重要的预处理器指令: #define 定义宏 #include包含一个源代码文件 #undef 取消已定义的宏