【发布时间】:2017-05-26 00:18:24
【问题描述】:
我不小心写了这段代码:
int main(string args[]) {
stderr.printf ("Usage: %s", args[0]);
return 1;
}
我的意思是:
int main(string[] args) {
stderr.printf ("Usage: %s", args[0]);
return 1;
}
区别在于参数的定义。奇怪的是valac 并没有抱怨第一个版本。
那么,如果我说type var[] 而不是type[] var,这对编译器意味着什么?
从生成的 C 代码看来,括号完全被忽略了。
在编译和运行此代码时也会出现段错误。
PS:我的 Vala 版本是 0.32.1(和 0.34.8 显示相同的行为)。
【问题讨论】:
-
不知道 Vala,但还有其他语言允许这两种形式,它们在 afaik 中是等价的。