2 cgr939923423 cgr939923423 于 2017.09.07 14:03 提问

求问一个c#预处理指令的问题!!!!!!!!!!!!!!!!!!!!!!
c#

图片说明
图片说明

我在class1和class2里面分别定义了#define #undef,那么这两个预处理指令谁先被执行?谁后被执行?执行的顺序是根据什么来确定的?

1个回答

aurorayjp
aurorayjp   2017.09.07 14:16

#define 的用法如下所示: #define DEBUG
  它告诉编译器存在给定名称的符号,在本例中是DEBUG。这有点类似于声明一个变量,但这个变量并没有真正的值,只是存在而已。
  这个符号不是实际代码的一部分,而只在编译器编译代码时存在。在C#代码中它没有任何意义。

  #undef 正好相反—— 它删除符号的定义: #undef DEBUG
  如果符号不存在,#undef 就没有任何作用。同样,如果符号已经存在,则#define 也不起作用。必须把#define 和#undef 命令放在C#源文件的开头位置,在声明要编译的任何对象的代码之前。
  #define 本身并没有什么用,要与其他预处理指令结合使用

cgr939923423
cgr939923423 可我问的是这两个指令分别在两个文件的开头,都是操作DEBUG那么 #define 和 #undef谁先执行?
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片