<分区>
我正在编写自定义 C99 解析器。我从 this 得到语法关联。该语法表示以下是声明数组的有效语法 -
int arr[*];
语法的相关部分如下-
direct-declarator ::=
identifier
"(" declarator ")"
direct-declarator "[" type-qualifier-list? assignment-expression? "]"
direct-declarator "[" "static" type-qualifier-list? assignment-expression "]"
direct-declarator "[" type-qualifier-list "static" assignment-expression "]"
direct-declarator "[" type-qualifier-list? "*" "]"
direct-declarator "(" parameter-type-list ")"
direct-declarator "(" identifier-list? ")"
我尝试使用 gcc 编译带有此声明的代码。它给了我以下警告 -
error: ‘[*]’ not allowed in other than function prototype scope
所以我尝试用这种语法声明一个函数原型(prototype),并且它编译时没有任何错误或警告。我没有得到的是这种语法在语义上可能意味着什么。有高手给解释一下吗?