我有一个关于Ada的问题。如果我有一个过程,在其中我可能会写入一个变量,或者也可能什么也不做,那么它应该是一个Out参数还是In Out参数?我想这归结为一个问题:
如果调用者调用了一个带有Out
参数的过程,但该过程没有触及参数,调用者会看到什么?它将看到相同的值还是未定义的行为?
编译器不会抱怨,因为它看到了对Out
变量的赋值...只是它恰好在条件语句中,可能永远不会被执行,并且编译器并不会检查所有路径。
我怀疑最安全的方法是将参数标记为In Out
,但我想知道这是否必要,还是只是风格上的偏好。
谢谢!
-prelic