c - 如何检查变量是否已在 C 中初始化?

标签 c

有没有办法在 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没有这个能力。您有两个主要选择:

标记值

例如,如果您知道 c 的值永远不会为负,则将其初始化为 -1,并为此进行测试。

添加另一个变量

创建另一个变量 bool we_set_c_to_something = false; 然后在写入 c 时将其设置为 true

关于c - 如何检查变量是否已在 C 中初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36490948/

相关文章:

c - C链表问题

命名空间前缀解析和优化级别依赖性中带有 extern "C"的 C++

c++ - 未定义、未指定和实现定义的行为

c - 如何在 C 中的字符串中存储路径名?

c - strcat() 和 read() 如何处理 C 中的 '\0'

c - open() 和 fopen() 的应用

python - 如何将 Python 对象转换为 C 变量?

创建一个在运行时链接的dylib

arrays - 在不定义变量的情况下将数组作为函数参数传递

无法弄清楚如何修复编译器错误。 (简单的初学者程序)