【发布时间】:2023-03-15 06:37:01
【问题描述】:
我见过许多 pro*C 程序,使用 for 循环“仅”执行一次 set a 语句。 例如,
for(i = 0; i < 1; i++)
{
EXEC SQL EXECUTE
DECLARE
/* some declarations here */
BEGIN
/* some PL/SQL code here */
END-EXEC;
}
为什么需要这个 for 循环?
【问题讨论】:
-
可能是货物崇拜编程。
-
通常使用
do{ /*something*/ }while(0),主要在宏中强制用户在宏调用后附加;。 -
@Cocoop 并不是真的要强制添加
;。这是为了确保多语句宏在从控制结构体内部使用时按预期运行。例如:if thisOrThat doSomething();。如果soSomething是一个多语句宏,要按预期运行,它必须包装在do { ... } while(0)块中。 也许 OP 建议的代码片段具有类似的目的(具有需要局部变量的额外缺点)。没有一些上下文,虽然很难说。 -
@SylvainLeroux 谢谢你的澄清:)
标签: c for-loop plsql proc oracle-pro-c