【发布时间】:2021-08-04 22:39:41
【问题描述】:
我想为程序设置一个具有任何值的变量。我能做的最好的事情是使用var,但C 中不存在var 关键字。
我试过这段代码:
#include <stdio.h>
int main() {
var a = 2;
puts(a);
}
然后得到这些错误:
var.c:4:5: error: use of undeclared identifier 'var'
var a = 2;
^
var.c:5:10: error: use of undeclared identifier 'a'
puts(a);
^
如果不是var,那么它在 C 中的等价物是什么?
【问题讨论】:
-
不,没有等价物。但是对于特定的问题可能会有特定的解决方案。
-
C 是严格类型的,因此您需要明确定义具有类型的变量。不管它值多少钱,在 C++ 中,
auto关键字可以执行类型推断,但 C++ 与 C 不同。 -
当您说“对于程序而言具有任何值的变量”时,您可能不应该以这种方式在 C 中使用变量。您可以使用 C-String 来存储您的原始数据并自行创建解析逻辑,否则您所建议的称为动态类型,这在 C 中是不允许的。
-
当您学习一门新语言时,您就是在学习一门新语言。不要为所有东西寻找等价物。切换语言时,您经常需要重新考虑一切。
-
@Louis-JacobLebel 道歉;您正在评论我删除的评论。但是真的吗?如果您使用 C++,您将使用
std::ostream对象 (cout),其中将调用适当的operator<<重载。你真的把问题复杂化了。是的,您正在直接回答问题;它也不是惯用的,var很少是合适的解决方案。在 C 或 C++ 中。不过同意 - 让我们现在停下来!
标签: c variables var equivalent