假设我们在某处定义了 num(局部变量)
int num;
然后,如果初始化,说:
num = 420;
我们做某事,如果不做,我们就不做。
在 C99/c 中这可能吗?在手册中找不到它。
最佳答案
如果你只是写
num = 420;
如果 num
已经初始化,然后尝试根据事实采取行动,那么不,你不能那样做。
原因是 C 不会在运行时的任何地方存储信息,无论变量是否已初始化。只有编译器在编译时知道。
检查 num == 420
是否也不起作用。如果它是一个自动变量并且没有被初始化,它的值是不确定的并且很可能是 420
没有显式初始化。无论如何,在没有初始化的情况下访问该变量是未定义的。
您可以做的是根据某些条件进行初始化,如下所示:
if (cond)
num = 420;
现在,!cond
等同于“num
尚未初始化”。您可以在该条件 cond
上依赖任何进一步的代码,它只会在 cond
为真时执行,这等同于“num
has已使用 420
进行初始化。”
关于c - 基于变量初始化状态的逻辑参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40450934/