zoukankan      html  css  js  c++  java
  • 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特性来实现,以现在来看,后种方式反而更是一种趋势。

  • 相关阅读:
    不务正业系列-浅谈《过气堡垒》,一个RTS玩家的视角
    [LeetCode] 54. Spiral Matrix
    [LeetCode] 40. Combination Sum II
    138. Copy List with Random Pointer
    310. Minimum Height Trees
    4. Median of Two Sorted Arrays
    153. Find Minimum in Rotated Sorted Array
    33. Search in Rotated Sorted Array
    35. Search Insert Position
    278. First Bad Version
  • 原文地址:https://www.cnblogs.com/prayol/p/5986082.html
Copyright © 2011-2022 走看看