说的初始化状态的逻辑论证,我们defie NUM地方(局部变量)基础上可变
int num;
然后,如果初始化,说:
num = 420;
我们做一些事情,如果没有,我们没有。
这是可能的C99/c整体?在手册中找不到它。
说的初始化状态的逻辑论证,我们defie NUM地方(局部变量)基础上可变
int num;
然后,如果初始化,说:
num = 420;
我们做一些事情,如果没有,我们没有。
这是可能的C99/c整体?在手册中找不到它。
如果你只写
num = 420;
,然后尝试取决于是否num
已初始化的事实你的动作,然后不,你不能这样做。
原因是C不会在运行时的任何地方存储信息,无论是否已经初始化变量。只有编译器知道在编译时。
检查num == 420
是否也不起作用。如果它是一个自动变量并且尚未初始化,则它的值是不确定的,并且很可能是420
而没有显式初始化。无论如何访问该变量没有初始化是不确定的。
你可以做的是依赖于某些条件的初始化,像这样的:“num
尚未初始化”现在
if (cond)
num = 420;
,!cond
相当于您可以依赖条件cond
的任何进一步代码,并且只有在cond
为真时才会执行,这相当于“num
已使用420
初始化”。
清晰的水晶,欢呼的家庭! –
你是否依赖你的动作来初始化它自己还是'num'的值? – Downvoter
你问是否可以通过程序检测一个变量是否被初始化?如果是这样,答案是否定的。在C中,程序员需要跟踪它。 –
@CoolGuy是啊这就是我要求的 –