博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#预处理器命令
阅读量:5291 次
发布时间:2019-06-14

本文共 810 字,大约阅读时间需要 2 分钟。

在最开始接触预处理指令时,是使用#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特性来实现,以现在来看,后种方式反而更是一种趋势。

转载于:https://www.cnblogs.com/prayol/p/5986082.html

你可能感兴趣的文章
Python数据分析入门案例
查看>>
0x7fffffff的意思
查看>>
Java的值传递和引用传递
查看>>
HTML5的服务器EventSource(server-sent event)发送事件
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
Ubuntu sudo 出现 is not in the sudoers file解决方案
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
#ifndef #define #endif
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
js中函数与对象的使用
查看>>
正则表达式
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>