C# 图解教程 第5版 —— 第24章 预处理指令

这篇具有很好参考价值的文章主要介绍了C# 图解教程 第5版 —— 第24章 预处理指令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

24.1 什么是预处理指令

​ C# 中没有实际的预处理程序,“预处理”指令由编译器处理,但这个术语被保留了下来。

24.2 基本规则

  1. 预处理指令必须和 C# 代码在不同的行。
  2. 预处理指令不需要以分号结尾。
  3. 包含预处理指令的每一行必须以“#”字符开始。
    • “#”字符前可以有空格。
    • 在“#”字符和指令之间可以有空格。
  4. 允许行尾注释。
  5. 预处理指令所在的行不允许有分隔符注释。
C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

​ 表 24.1 列出了预处理指令。

表24.1 预处理指令
C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

24.3 符号指令(#define、#undef )

​ 编译符号是只有两种可能状态的标识符,要么被定义,要么未被定义。其具有如下特性:

  1. 可以是任何标识符(除 true 和 false 外),包括关键字,以及在 C# 代码中声明的标识符。
  2. 它没有值,不表示字符串。
  3. #define 声明一个编译符号。
  4. #undef 取消定义一个编译符号。
C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

​ #define 和 #undef 只能用在源文件的第一行,即任何 C# 代码之前。

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

​ 重复定义已存在的编译符号是被允许的。

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

​ 定义一个标识符相当于将其值设置为 true,取消定义一个标识符相当于设置其值为 false。

24.4 条件编译(#if、#else、#elif、#endif)

​ 条件编译允许根据某个编译符号是否被定义,来标注一段代码是否被编译或跳过。

  • #if
  • #else
  • #elif
  • #endif
表24.2 在 #if 和 #elif 指令中使用的条件
C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

24.5 条件编译结构

​ #if 和 #endif 需要配对使用,有 #if 指令,则必须有配对的 #endif 指令。

#if 和 #if … #else 结构

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展
图24.1 #if(左)和 #else(右)结构

#if … #elif 和 #if … #elif … #else

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展
图24.2 #if ... #elif(左)和 #if ... #elif ... #else(右)结构

24.6 诊断指令(#warning、#error)

​ 诊断指令产生用户自定义的编译时警告及错误消息,其语法如下。需要注意,Message 是字符串,但不需要被引号包围。

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

​ 当编译器遇到诊断指令时,会输出相关消息。诊断指令的消息会和编译器产生的警告和错误消息列在一起。

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展
  • #error 指令在 #if 结构中,只有满足 #if 条件时才会生成错误消息:“构建失败”。
  • #warning 用于提醒程序会回头来清理一段代码。

24.7 行号指令(#line)

​ 行号指令可以做如下事情:

  1. 改变编译器警告和错误消息报告的出现行数;
  2. 改变被编译源文件的文件名。
  3. 对交互式调试器隐藏一些行。
C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

​ 例如:

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

24.8 区域指令(#region、#endregion)

​ 区域指令允许标注和有选择性地命名一段代码。区域由一个 #region 指令和其下方某处的一个 #endregion 指令构成。区域功能能够更轻松地浏览和组织代码。

​ 例如,下面的代码定义了区域 Constructors,包含 2 个构造函数 MyClass。如果不想查看其中的代码,可以在 Rider 中将其折叠为一行。

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

24.9 警告开关指令(#pragma warning)

​ 使用 #pragma warning 指令可以关闭或重新开启警告消息。

  • disable:关闭警告消息。
  • restore:开启警告消息。

关闭/开启特定警告消息

​ 例如,下面的代码关闭 2 个警告消息 618 和 414,之后又开启了 618 警告消息。

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

关闭/开启所有警告消息

​ 若不带任何数字列表,则命令会应用于所有警告。文章来源地址https://www.toymoban.com/news/detail-796110.html

C# 图解教程 第5版 —— 第24章 预处理指令,C# 图解教程 第5版,c#,开发语言,职场和发展

到了这里,关于C# 图解教程 第5版 —— 第24章 预处理指令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#_预处理指令

    1.         预处理器指令指导编译器在实际编译开始之前对信息进行预处理。         所有的预处理器指令都是以 # 开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。         C# 编译器没有一个单

    2024年02月09日
    浏览(29)
  • 什么是预处理器指令,常用的预处理器指令有哪些?什么是运算符,C 语言中的运算符有哪些?

    预处理器指令是一种用于在源代码编译之前进行预处理的特殊指令。它们通过在程序编译之前对源代码进行处理,可以在编译阶段之前进行一些文本替换、条件编译等操作,从而对源代码进行一些宏定义、条件编译等操作。 常用的预处理器指令有以下几种: #define:用于定义

    2024年02月15日
    浏览(42)
  • 015+limou+C语言深入知识——(7)编译环境和运行环境以及预处理指令

    在这个环境中,源代码被转化为可执行的机器指令(二进制指令) 单文件简易版本 多文件简易版本 编译链接详细版本 VS2022集成IDE(windows下)的编译器叫cl.exe,链接器叫link.exe gcc编译器(windows下)的几个有关编译环境的命令 (1)符号表会把全局变量和具有外部链接的函数

    2023年04月11日
    浏览(29)
  • 在C++中控制调试信息的输出通常通过预处理指令(如 #define)和条件编译指令(如 #ifdef、#ifndef、#endif)来实现。

    在C++中,控制调试信息的输出通常通过预处理指令(如 #define )和条件编译指令(如 #ifdef 、 #ifndef 、 #endif )来实现。这种方法提供了一种灵活的方式来包含或排除调试代码,而无需对代码本身进行大量修改。以下是实现这一功能的一种常见方法: 定义一个宏用于控制调试

    2024年02月02日
    浏览(30)
  • Less预处理器教程

    less官方文档 lesscss.org/ less中文文档 less.bootcss.com/ less是一种css预处理器,它扩展了css语言,提供了变量、嵌套、混合、运算等功能,使样式表的编写更加灵活和高效,用来书写css的工具。 通俗的说,less是一种专门编写css代码的语言(工具),通过less来编写css代码变得更灵活,

    2024年02月21日
    浏览(38)
  • EEGLAB系列教程5:数据预处理2(ICA去伪迹)

    今天介绍EEG数据处理系列教程5,在前面的几期中,已经介绍了数据基本处理过程,可以参见以下链接: EEGLAB 系列教程1:安装和启动 EEGLAB EEGLAB 系列教程2:在 EEGLAB 中管理数据集 EEGLAB 系列教程3:在 EEGLAB 中建立location EEGLAB 系列教程4:在 EEGLAB 中预处理数据1 在很久之前,我也

    2023年04月20日
    浏览(25)
  • C语言入门教程||C语言 文件读写||C语言 预处理器

    本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。本章将讲解文件管理的重要调用。 您可

    2024年02月02日
    浏览(29)
  • 基于MATLAB的无人机遥感数据预处理与农林植被性状估算教程

    详情点击链接:基于MATLAB的无人机遥感数据预处理与农林植被性状估算 前言 遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势,是智慧农业必须采用的重要技术之一。   第一:

    2024年02月16日
    浏览(26)
  • 【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

    项目开始,首先要进行数据准备和数据预处理。 数据准备的核心是找到这些数据,观察数据的问题。 数据预处理就是去掉脏数据。 缺失值的处理,格式转换等。 延伸学习: 在人工智能(AI)的众多工作流程中,数据准备与预处理占据着举足轻重的地位。这两个步骤不仅影响

    2024年02月19日
    浏览(31)
  • 认识主被动无人机遥感数据、预处理无人机遥感数据、定量估算农林植被关键性状、期刊论文插图精细制作与Appdesigner应用开发

    目录 第一章、认识主被动无人机遥感数据 第二章、预处理无人机遥感数据 第三章、定量估算农林植被关键性状 第四章、期刊论文插图精细制作与Appdesigner应用开发 更多推荐 遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包