是否可以在函数参数列表中使用先前的参数作为参数列表中后续参数的默认值?例如,
void f( int a, int b = a, int c = b );
Run Code Online (Sandbox Code Playgroud)
如果可以,有任何使用规则吗?
我写了以下内容:
#include <stdio.h>
int foo(int x, int y=2*x)
{
return y;
}
int main()
{
printf("%d\n",foo(5));
}
Run Code Online (Sandbox Code Playgroud)
但我有编译时错误error: local variable ‘x’ may not appear in this context
但是我预计它会没问题,因为3.3.4/1:
在函数声明中,或除函数定义(8.4)的声明符之外的任何函数声明符中,参数名称(如果提供)具有函数原型作用域,该作用域终止于最近的封闭函数声明符的末尾.
结束最近的封闭函数声明符,声明}点紧跟在之后int x.那为什么它不起作用?