【发布时间】:2015-01-18 11:56:28
【问题描述】:
说一个布尔返回类型的 C 函数(布尔可以实现为 0 和 1 的枚举或其他方式,但这并不重要):
boolean foo ()
{
//do something
return;
}
这会返回什么?它返回 FALSE 吗?还是它只是退出函数而没有任何返回?期望从 foo 返回的函数会收到什么?
【问题讨论】:
-
那是未定义的行为,不是吗?你的编译器应该抱怨这个。
-
不确定时,运行代码。
-
如果您在
return之后添加FALSE,那么它将返回FALSE。如果您在return之后添加TRUE,那么它将返回TRUE。调用foo的函数应该期望boolean值。 -
@siu 在许多情况下运行具有未定义行为的代码根本不会告诉您任何有用的信息。
标签: c function boolean return undefined-behavior