2

采取以下代码段:

 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]”。

4

2 回答 2

4

在 C 标准 (ISO 9899:1999) 中,这是一个参数类型说明符,如果该说明符中没有标识符,则称该参数为unnamed

“大小”的任何概念都是类型的一部分(具有未知大小的数组类型被称为不完整的)。请注意,这里的[6]构造不是定义数组类型而是指针类型(参数列表中的顶级数组声明符会自动转换为指针声明符,并且假定的数组大小被忽略)。

于 2010-02-23T12:54:39.907 回答
1

在 C 语法中,第char [6]3 行是 a parameter-type-list,由一个 single 组成parameter-list,它由一个 single 组成parameter-declaration

parameter-declarationdeclaration-specifier( char) 和abstract-declarator( [6]) 组成。

于 2010-02-23T12:56:26.270 回答