tangguo

什么是形式参数?

c

使用C ++进行编译时,我经常会遇到处理“形式参数”的错误消息,例如

error C2719: 'b': formal parameter with __declspec(align('16')) won't be aligned

我确实了解该错误,也了解b我所定义的函数的参数这一事实。

但是,参数是形式的意味着什么?是否可以有非正式参数?

我确实注意到“形式参数”一词也出现在其他语言中,所以我认为它是一个更通用的术语,不一定特定于C语言家族?某些语言子集支持非正式参数吗?

在看到答案之后,最后一个问题是:那些形式参数和实际参数来自何处?它起源于C标准,还是在某种抽象语言演算中这样调用它的效果?


阅读 1111

收藏
2020-11-24

共1个答案

一尘不染

有正式参数和实际参数:

void foo(int arg); //arg is a formal parameter

int main()
{
    int val = 1;
    foo(val);  //val is an actual parameter
}

从C ++ Standard开始:

1.3.1形式参数(参数)

作为函数声明或定义的一部分或在异常处理程序的catch子句中声明的对象或引用,在进入函数或处理程序时获取值;在以逗号分隔的列表中的标识符,该标识符以类似函数的宏定义形式紧跟在宏名称之后的括号内;或模板参数。参数也称为形式参数或形式参数。

1.3.10实际参数(参数)

在函数调用表达式中以括号分隔的逗号分隔列表中的表达式,在函数式宏调用,throw操作数或表达式中以逗号分隔的逗号分隔列表中的预处理标记序列,模板实例化中以尖括号为边界的逗号分隔列表中的type-id或template-name。也称为实际参数或实际参数。

2020-11-24