a=11, b=22, c=33; //模块变量赋初值 & C/ f W5 f- x8 s0 A1 C8 R
f(x)=x+a+b+c; //函数f中使用了模块变量- s4 u4 s7 o. h; ~- E5 t
f(1); //函数调用
复制代码
结果:/ Y3 R3 m7 x z7 U C8 K
67. - U1 I! ^6 G0 ^ `5 c3 q, q: d8 E7 G5 I
这样看起来似乎不错,的确,在简单的程序中,这样写代码很简洁方便。不过,在复杂的程序中却不推荐使用编译符mvar,因为它常常会隐藏一些人为的错误,例如下面的代码通过了编译,但--看看你的眼力,能否发现其中的错误?
mvar: * q5 r% w) Y) n: i) _' c
a=11, b=22, c=33; //模块变量赋初值 5 z* a8 k! C: o5 [
f(x)=x+a+d+c; //函数f中使用了模块变量 U9 |\" w# E6 t$ A4 j6 d
f(1); //函数调用
复制代码
若显示地声明模块变量,编译器会帮你发现这个错误:
init(::a,b,c)= a=11, b=22, c=33; //模块变量赋初值2 g9 c2 }/ \$ Y j% w6 |! V/ Y0 U9 M