"type var[]" 是什么意思?
What does "type var[]" mean?
我不小心写了这段代码:
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 显示相同的行为)。
在 var 名称后放置方括号将创建一个固定大小的数组。例如,如果您执行 string args[1]
,您将得到一个大小为 1 的数组。
在本教程的底部进行了简要讨论:
https://chebizarro.gitbooks.io/the-vala-tutorial/content/arrays.html
我不小心写了这段代码:
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 显示相同的行为)。
在 var 名称后放置方括号将创建一个固定大小的数组。例如,如果您执行 string args[1]
,您将得到一个大小为 1 的数组。
在本教程的底部进行了简要讨论: https://chebizarro.gitbooks.io/the-vala-tutorial/content/arrays.html