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

标签 c syntax logic c99

假设我们在某处定义了 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/

相关文章:

css - 函数是否在 CSS 标准中定义?

php - 如何使用 PHP 和 MySQL 高效地对大型数据集进行分页?

algorithm - 将 10 位值合并为一个唯一字节

c - 如何在不读取数据的情况下监听socket?

c - 结构是巨大的。为什么?

用C计算复数的abs值

mysql - SQL:删除列语法错误

syntax - Powershell 添加内容

python - 在数据库中存储逻辑

c - 如何在函数指针中使用函数地址?