采取以下片段:
1 #include <stdio.h>
2 #include <stdlib.h>
3 int foo(char [6]);
4
5 int main(void) {
6 char* bar="hello";
7 return foo(bar);
8 }
9
10 int foo(char f[6]) {
11 return EXIT_SUCCESS;
12 }
13
第3行“char [6]”的正确技术术语是什么?我将其称为“类型和大小说明符”,它仅描述了编译器使用的内容。
我用来调用“函数的调用堆栈签名”或简称为“函数签名”的整行3。 “函数声明”或“函数原型”也是正确的,而不是“函数实现”。
注意:您无需向我解释有关调用堆栈,帧,调用约定等的所有内容。人。我只是在那里寻找合适的术语。不是整行3,只是如何调用一个单一的说明符,如“char [6]”。
答案 0 :(得分:4)
在C标准(ISO 9899:1999)中,这是参数类型说明符,如果该说明符中没有标识符,则该参数被称为未命名
“size”的任何概念都是该类型的一部分(具有未知大小的数组类型被称为不完整)。请注意,这里,[6]
构造没有定义数组类型,而是指针类型(参数列表中的顶级数组声明符会自动转换为指针声明符,并忽略推定的数组大小。)
答案 1 :(得分:1)
在C语法中,第3行的char [6]
是parameter-type-list
,由一个parameter-list
组成,由parameter-declaration
组成。
parameter-declaration
由declaration-specifier
(char
)和abstract-declarator
([6]
)组成。