在C语言中,有没有一种方法可以检查变量是否已经初始化?
考虑以下示例:
int main(){
int a = 3, b = 7, c;
if ( a > b )
c = a-b;
// Now, how can I check if the variable "c" has some value or not
// I don't want check like this,
// if ( isalpha(c) ) or if ( isdigit(c) )
// or anything similar to like that
}
换句话说,C语言是否有类似于Perl中的
defined
函数的功能?在Perl中,我可以简单地使用if (defined c)
来检查变量是否已定义,对于上面的示例,它将返回False。在C语言中如何实现相同的功能?
c
没有默认值。它的初始值是未指定的。尝试读取未指定初始值的变量会导致未定义行为。 - Bill Lynchc
被定义为整数,但当b < a
时它是未初始化的。如果一个变量没有被定义且你尝试引用它,编译器会生成一个错误(该变量不存在)。在某些情况下,如果你在给变量赋值之前尝试引用它,编译器可能会发出警告。但除了接受答案中提到的方法,你没有运行时的方法来检查是否已经给变量赋值。 - tomlogicint c;
时,c
同时被 声明 和 定义。 - Spikatrix