ID : 116
#Ifdef ... #Endif
功能
判断是否已定义指定宏,选择编译源代码。
格式
#Ifdef 宏名 编码1 #Elif Defined(宏名) 编码2 #Else 编码3 #Endif
指定项目
- 宏名
- 指定宏名。
- 编码n
- 指定源代码。
解说
判断是否已定义指定宏,选择编译源代码。
如果已定义宏名,则编译编码1,不编译编码2以及编码3。
如果未定义宏名,则判断条件,编译编码2或者编码3。
与#If Defined(宏名) ... 相同。
相关项目
注意事项
在宏名中使用组装宏时,评价通常为真,不进行分支。
例如,在下述编码中,通常使用<Code1>,不使用<Code2>,与机器人类型无关。
#Ifdef __SCARA_ROBOT__为正确进行该分支,需要使用#If语句,并按照以下方法记述。
... <Code1>
#Else
... <Code2>
#EndIf
#If __SCARA_ROBOT__ ... <Code1> #Else ... <Code2> #EndIf
应用示例
'!TITLE“条件编译”
'判断是否已定义宏,将值累加至aaa
#Define TEST2 20
Sub Sample_IfdefEndif
Dim aaa As Integer
aaa = 10
'已定义宏名TEST时
#Ifdef TEST
aaa = aaa + 10
'在讯息输出视窗中显示aaa的值
PrintDbg "aaa = " & aaa
'已定义宏名TEST2时
#Elif Defined(TEST2)
aaa = aaa + 20
'在讯息输出视窗中显示aaa的值
PrintDbg "aaa = " & aaa
'宏名TEST、TEST2均未定义时
#Else
aaa = aaa + 30
'在讯息输出视窗中显示aaa的值
PrintDbg "aaa = " & aaa
#Endif
End Sub
ID : 116