预处理器指令 (HLSL)

预处理器指令(如 #define#ifdef)通常用于使源程序在不同执行环境中易于更改和编译。 源文件中的指令告知预处理器执行特定操作。 例如,预处理器可以替换文本中的标记,将其他文件的内容插入源文件,或通过移除几个部分的文本来取消一部分文件的编译。 在扩展宏之前,将识别并执行预处理器行。 因此,如果宏扩展到类似于预处理器命令的内容,该预处理器无法识别此命令。

预处理器语句使用的字符集与源文件语句的相同,只不过转义序列不受支持。 预处理器语句中使用的字符集与执行字符集相同。 预处理器还可识别负字符值。

HLSL 预处理器识别以下指令:

数字符号 (#) 必须是包含指令的行上的第一个非空白字符;空白字符可能出现在数字符号与指令的第一个字母之间。 某些指令包含参数或值。 所有跟在指令后面(指令包含的参数或值除外)的文本的前面必须有单行注释分隔符 (//) 或者必须括在注释分隔符 (/* */) 中。 包含预处理器指令的行可以通过紧靠在结束行标记前放置反斜杠 (\) 继续。

预处理器指令可以出现在源文件中的任何位置,但是它们仅应用于源文件的剩余部分。

附录 (DirectX HLSL)