假设我们在某处(局部变量)defie num
int num;
然后,如果初始化,请说:
num = 420;
我们做某事,如果没有,我们不会。
C99 / c总体上可以吗?无法在手册中找到它。
答案 0 :(得分:2)
如果你只是写
num = 420;
如果num
已初始化,请尝试依赖您的操作,然后不,您不能这样做。
原因是C不会在运行时的任何地方存储信息,无论变量是否已初始化。只有编译器在编译时才知道
检查num == 420
是否也无效。如果它是一个自动变量并且尚未初始化,则它的值是不确定的,如果没有显式初始化,很可能是420
。无需初始化即可访问该变量,无论如何都是未定义的。
你可以做的是在某些条件下依赖初始化,如:
if (cond)
num = 420;
现在,!cond
相当于“num
尚未初始化”。您可以在该条件cond
上依赖任何进一步的代码,并且仅在cond
为真时执行,这相当于“num
已使用420
初始化。 “