函数定义指定函数的名称、它期望接收的参数的类型和数量,以及其返回类型。 函数定义还包括一个函数主体,其中包含其局部变量的声明,以及确定函数的作用的语句。
语法
              translation-unit:
 external-declaration 
 
              translation-unit
              external-declaration
            
              external-declaration:/* 仅允许在外部 (文件) 范围 */
 function-definition
 declaration
              function-definition:
 
              declaration-specifiers
              选择attribute-seq选择declaratordeclaration-list选择compound-statement
              /* 
              attribute-seq 特定于Microsoft */
原型参数包括:
              declaration-specifiers:
 
              storage-class-specifier
              declaration-specifiers
              选择 
 
              type-specifier
              declaration-specifiers
              选择
 
              type-qualifier
              declaration-specifiers
              选择
              declaration-list:
 declaration
 
              declaration-list
              declaration
            
              declarator:
 
              pointer
              选择direct-declarator
              direct-declarator:/* 函数声明符 */
 
              direct-declarator
              (
              parameter-type-list
              ) /* 新样式声明符 */
 
              direct-declarator
              (
              identifier-list
              选择) /* 过时样式声明符 */
定义中的参数列表使用此语法:
              parameter-type-list:/* 参数列表 */
 parameter-list 
 
              parameter-list
              , ...
            
              parameter-list:
 parameter-declaration
 
              parameter-list
              ,
              parameter-declaration
            
              parameter-declaration:
 
              declaration-specifiers
              declarator
            
 
              declaration-specifiers
              abstract-declarator
              选择
旧样式函数定义中的参数列表使用此语法:
              identifier-list:/* 用于过时样式的函数定义和声明 */
 identifier
 
              identifier-list
              ,
              identifier
            
函数主体的语法为:
              compound-statement:
 
              {
              declaration-list
              选择statement-list选择}
唯一可以修改函数声明的存储类说明符是 extern 和 static。 说明 extern 符表示可以从其他文件引用函数;也就是说,函数名称将导出到链接器。 说明 static 符表示无法从其他文件引用函数;也就是说,链接器不会导出该名称。 如果函数定义中未显示存储类,则假定为 
可选 declaration-specifiers 和必需 declarator 一起指定函数的返回类型和名称。 该 declarator 标识符是一个标识符的组合,该标识符命名函数和括号位于函数名称之后。 可选的 attribute-seq 非终止是 函数属性中定义的Microsoft特定功能。
              direct-declarator (在declarator语法中)指定所定义的函数的名称及其参数的标识符。 
              direct-declarator如果包含 aparameter-type-list,则列表指定所有参数的类型。 此类声明符还充当函数原型,供以后调用函数。
函数declaration-list定义中的 A declaration 不能包含storage-class-specifier其他register函数定义。 
              type-specifier仅当为类型的值int指定存储类时register,才能省略语法declaration-specifiers中的语法。
              compound-statement是包含局部变量声明、对外部声明项和语句的引用的函数正文。
函数 属性、 存储类、 返回类型、 参数和 函数正文 部分详细介绍了函数定义的组件。