基于变量初始化状态的逻辑参数

时间:2016-11-06 15:16:21

标签: c syntax logic c99

假设我们在某处(局部变量)defie num

int num;

然后,如果初始化,请说:

num = 420;

我们做某事,如果没有,我们不会。

C99 / c总体上可以吗?无法在手册中找到它。

1 个答案:

答案 0 :(得分:2)

如果你只是写

num = 420;

如果num已初始化,请尝试依赖您的操作,然后不,您不能这样做。
原因是C不会在运行时的任何地方存储信息,无论变量是否已初始化。只有编译器在编译时才知道 检查num == 420是否也无效。如果它是一个自动变量并且尚未初始化,则它的值是不确定的,如果没有显式初始化,很可能是420。无需初始化即可访问该变量,无论如何都是未定义的。

你可以做的是在某些条件下依赖初始化,如:

if (cond)
    num = 420;

现在,!cond相当于“num尚未初始化”。您可以在该条件cond上依赖任何进一步的代码,并且仅在cond为真时执行,这相当于“num已使用420初始化。 “