C#必备知识之预编译指令

预编译又称为预处理,是做些代码文本的替换工作。处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等,就是为编译做的预备工作的阶段,主要处理#开始的预编译指令。

下面对C#中的预编译指令进行介绍:

1.#define和#undef

用法:

#define DEBUG

#undef DEBUG

#define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量,但是它没有具体的值,可以将它看为一个符号而已。#undef就是删除这个符号的定义。如果符号DEBUG没定义过,则#undef不起作用,否则#define不起作用。二者都必须放在源代码之前。二者的顺序看代码的顺序:

#define DEBUG

#undef DEBUG

这样的话,DEBUG是没有定义的,如果二者换个顺序,编译器就认为DEBUG被定义了

2.#if、#elif、#else、#endif

这个告诉编译器进行编译代码的流程控制。考虑下面代码:

#if DEBUG
  Console.Write("debug");
#elif RELEASE
  Console.Write("realse");
#else
  Console.Write("other");
#endif

以上代码就是说如果定义了DEBUG则输出debug,定义了RELEASE,则输出realse,否则输出other。如果定义了DEBUG和REALSE会怎么样呢?各位可以自己试一下。

3.#warning、#error

通过这两个指定可以告诉编译器,出一个警告还是错误信息。除了错误信息以后,编译将停止。

参考下面的代码:

#if DEBUG           ------〉该DEBUG如果选中当前状态为DEBUG,则这个默认为#define
  #warning “现在是Ddbug状态”
#elif RELEASE         ------〉如果选中release状态的话,这个确没有默认,不知道我试验的对不对
  #warning “现在是Realse状态”
#else
  #error“并清楚什么状态”
#endif

4.#region 和#endregion

这个两个用来组成代码块

时间: 2024-12-03 05:34:28

C#必备知识之预编译指令的相关文章

IOS代码运行的磨刀石-预编译指令

IOS中代码运行的磨刀石--预编译指令 所谓预编译,就是程序代码在编译之前,开发工具为我们预先做的一些工作.不要小瞧这些指令,没有它们,我们的代码可能寸步难行. 一.文件包含相关预处理命令 #include <header> #include "header" C语言中使用的包含文件的指令""和<>的区别为,""是从当前目录开始寻找文件,<>是从系统库中寻找文件.这两个指令不能使头文件循环引入,也不能重复包含同

Delphi中预编译指令的使用方法

在Delphi中,也有与C相似的预编译指令,虽然该类指令只在当前的单个文件有效(也有可能是笔者未全面了解该类指令的真正用法),但是这一类指令对于进行多版本的制作工作(如从标准版中出学习版),确实有着相当不错的用途. 一.指令介绍: 1.DEFINE指令: 格式:{$DEFINE 名称} 说明 :用于定义一个在当前单元有效的符号(Symbol).定义了 之后可以使用IF DEF和IFNDEF指令来判断该符号是否存在. 2.UNDEF指令:格式:{$UNDEF 名称}说明:用于取消一个在当前单元已经

Delphi 中的预编译指令

  Delphi 中的预编译指令 在Delphi中,也有与C相似的预编译指令,虽然该类指令只在当前的单个文件有效(也有可能是笔者未全面了解该类指令的真正用法),但是这一类指令对于进行多版本的制作工作(如从标准版中出学习版),确实有着相当不错的用途.  一.指令介绍:  1.DEFINE指令:  格式:{$DEFINE 名称}  说明 :用于定义一个在当前单元有效的符号(Symbol).定义了之后可以使用IF DEF和IFNDEF指令来判断该符号是否存在.  2.UNDEF指令:  格式:{$UN

《嵌入式C编程:PIC单片机和C编程技术与应用》一第3章预编译指令3.1 标准预编译指令

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第3章,第3.1节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 第3章 Embedded C Programming: Techniques and Applications of C and PIC MCUS 预编译指令 编译器对C程序的处理可以明确地分为两步.第一步由预编译器完成.以#开头的预编译指令可能会影响编译器设置或者进行

Delphi7.0 预编译指令说明

  Delphi7.0 预编译指令说明 A.1 使用编译设置对话框  编译器的编译指令是用于指定编译器对项目编译过程的动作和行为.可以通过[Project]->[Options]-> [Complier]选项页进行设置(快捷键:Crtl+Shift+F11),绝大部分的编译环境都可以通过这一对话框进行调 整,他包含了对代码.语法.调试信息等的设置.  1.代码设置(Code Generation) Optimization: 是否优化代码.包括防止变量到CPU寄存器.合并分解表达式.生成中间变

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.4 C预编译指令

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.4节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.4 C预编译指令 预编译是C语言中一个非常有意思的特性.预处理使用工具(预处理器)在编译前先扫描一遍代码,并对代码做出相应的修改从而生成用来编译的代码.预编译指令由#开始,占用一整行.在第3章中将会详细介绍它.在上面的例子中,#include指令将文件(e3.h)的

C#中的预编译指令介绍

原文:C#中的预编译指令介绍 1.#define和#undef      用法:           #define DEBUG           #undef DEBUG     #define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量,但是它没有具体的值,可以将它看为一个符号而已.#undef就是删除这个符号的定义.如果符号DEBUG没定义过,则#undef不起作用,否则#define不起作用.二者都必须放在源代码之前.二者的顺序看代码的顺序:     #define D

利用预编译指令防止代码重复编译

 看下面一段代码     #include "test.h"   //看到这句我们重复了 三次 按照我们以往的编写 我们可能认为 他会出现变量函数 等重复定义的错误   在一个文件中这样写显然是不好  我这里是做演示 因为我们在大型项目开发中很有可能的重复包含 同一个头文件 为了防止错误的发生我们要再 头文件中利用#idndef  #ifdef 等预编译指令 来处理代码   #ifdef identifier #ifndef identifier   identifier标示符 可以使

C++ 内置宏定义 与 预编译指令

内置宏和预编译指令, 在代码调试.单元测试.跨平台代码中经常会用到.这里记录一下. 1. 内置宏 (文件名,当前行号,当前日期,当前时间,当前执行方法名) __FILE____LINE____DATE____TIME__ __FUNCTION__ 2.预编译指令 可以防止头文件被多次引用 可以方便解决代码跨平台编译问题 可以根据自定义变量灵活执行程序 等等,许多好处   效果可以看代码实例: test.h 1 #ifndef __TEST_H 2 #define __TEST_H 3 4 #in