参数

参数是值的名称传递给函数调用。 参数是函数预期收到的值。 在函数原型,括号在函数名后包含完整的函数的参数及其类型。 参数声明指定参数中存储的值的类型、大小和标识符。

语法

  • 功能定义:
    声明说明符opt属性顺序opt声明列表的说明opt复合语句

    属性序列 的/* 是特定于 Microsoft 的 *

  • 声明 :
    指针opt直接 声明

  • 直接声明: /* 的函数声明 *
    直接声明 ( 参数类型列表 )/* 新的声明 *

  • 参数类型的列表:/* 的参数列表 *
    参数列表

    参数列表 ,…

  • 参数列表:
    参数声明

    参数列表 参数声明

  • 参数声明:
    声明说明符声明

    声明说明符抽象声明 opt

参数类型列表 是参数声明顺序逗号分隔。 每个参数的窗体中的参数列表如下所示:

[register]  type-specifier [declarator] 

函数参数声明 自动 属性生成错误。 参数的标识符用于函数体引用值传递给函数。 在原型来命名参数,但是,名称超出范围在标题末尾。 因此参数名在函数定义中分配方式相同或不同的方式。 这些标识符在最外层不能重块函数体,但是,它们在内部可以重新定义,嵌套块,就象参数列表括起块。

如以下示例所示,每个标识符 参数类型列表 必须在为正确的类型说明符后,例如:

void new( double x, double y, double z )
{
    /* Function body here */
}

如果至少一个参数在发生参,列表可以在三后跟句号的逗号结束 (…)。 此构造,称为 “省略号表示形式,”表示参数数目可变给函数。 (请参见 调用带有参数数目可变 有关更多信息。)但是,在中,尽管具有参数在最后一个逗号之前,对函数的调用必须至少有许多参数。

如果参数不会传递到函数,参数列表中关键字 void替换。 为 void 的这种用法从其使用一目了然为类型说明符。

参数的顺序和类型,包括对省略号表示形式的所有使用,必须相同在这些函数声明 (如果有) 和函数定义方面。 参数的类型通常在算术转换后的绑定是为符合对应参数的类型。 (请参见 通常算术转换 有关算术转换的信息。)遵循省略号的参数不会检查。 参数可以具有任意基础知识、结构、联合、指针或数组类型。

编译器独立地执行常见的算术转换在每个参数和在每个参数,如果需要,。 在转换后,参数比 int不短,因此,参数没有 float 类型,除非参数类型被显式指定为 float 在原型。 这意味着,例如,声明一个参数作为 char 其效果和声明它与作为 int。

请参见

参考

C函数定义