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

C 基于变量初始化状态的逻辑参数,c,syntax,logic,c99,C,Syntax,Logic,C99,假设我们在某处定义num(局部变量) 然后,如果初始化,则表示: num = 420; 我们做了些什么,如果不做,我们就不做 这在C99/c中是否可能?在手册中找不到它。如果您只是写 num = 420; 然后尝试依赖于这样一个事实:如果num已经初始化,那么不,您不能这样做。 原因是,无论变量是否已初始化,C都不会在运行时的任何位置存储信息。只有编译器在编译时才知道这一点。 检查num==420也不起作用。如果它是一个自动变量,并且尚未初始化,那么它的值是不确定的,如果没有显式初始化,很可

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

然后,如果初始化,则表示:

num = 420;
我们做了些什么,如果不做,我们就不做

这在C99/c中是否可能?在手册中找不到它。

如果您只是写

num = 420;
然后尝试依赖于这样一个事实:如果
num
已经初始化,那么不,您不能这样做。
原因是,无论变量是否已初始化,C都不会在运行时的任何位置存储信息。只有编译器在编译时才知道这一点。
检查
num==420也不起作用。如果它是一个自动变量,并且尚未初始化,那么它的值是不确定的,如果没有显式初始化,很可能是
420
。在没有初始化的情况下访问该变量仍然是未定义的

您可以做的是根据某些条件进行初始化,例如:

if (cond)
    num = 420;

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

您的操作是否取决于初始化本身或
num
的值?您是否询问是否可以通过编程检测变量是否已初始化?如果是这样,答案是否定的。在C语言中,你,程序员,需要跟踪它。@CoolGuy,是的,我就是这样asking@Downvoter关于初始化本身
if (cond)
    num = 420;