亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C 语言用户自定义函数进阶:原型、调用、参数传递与返回值

C 语言用户自定义函数进阶

本教程通过清晰示例,讲解 C 语言用户自定义函数的创建、原型声明、调用、参数传递与返回值机制。

什么是函数?

函数是执行特定任务的自包含代码块。C 允许定义用户自定义函数,封装可复用逻辑。

示例场景

假设需创建圆并按半径与颜色着色。可用两个用户自定义函数:


示例:两整数相加

下面程序用自定义 addNumbers() 函数实现两整数相加。

#include <stdio.h>
int addNumbers(int a, int b); // 函数原型
int main(void) {
    int n1, n2, sum;
    printf("Enter two numbers: ");
    scanf("%d %d", &n1, &n2);
    sum = addNumbers(n1, n2); // 函数调用
    printf("sum = %d\n", sum);
    return 0;
}
int addNumbers(int a, int b) // 函数定义
{
    int result = a + b;
    return result; // 返回语句
}

函数原型

函数原型声明函数名、返回类型、参数,告知编译器函数存在,不含函数体。

语法

returnType functionName(type1 argument1, type2 argument2, ...);

示例中 int addNumbers(int a, int b); 告知编译器 addNumbers 返回 int、接受两个 int 参数。

若用户自定义函数定义在 main() 之前,原型可省略。


函数调用

通过传入实参将控制权转移给函数。

语法

functionName(argument1, argument2, ...);

示例中 addNumbers(n1, n2); 将 n1、n2 值传给函数。


函数定义

定义包含调用时实际执行的代码。

语法

returnType functionName(type1 argument1, type2 argument2, ...) {
    // 函数体
}

调用 addNumbers 时,编译器跳转至此块,执行加法并返回结果。


参数传递

实参是调用时提供的实际值,形参接收这些值。

C 语言用户自定义函数进阶:原型、调用、参数传递与返回值

实参类型必须与形参类型匹配,否则编译报错。如 n1 为 char,对应形参 a 也须为 char。

函数也可无参数调用。


返回语句

return 终止函数并可选返回值给调用者。

语法

return expression;

示例中 return result; 将和返回 main(),存入 sum。

C 语言用户自定义函数进阶:原型、调用、参数传递与返回值

返回类型须与函数声明返回类型一致。

深入了解参数传递与返回值,请 探索 C 高级函数概念。

C语言

  1. C 语言用户自定义函数四大模式对比:参数与返回值的设计权衡
  2. C语言中将一维与二维数组传递给函数的实战指南
  3. 精通C标准库函数:实战指南
  4. C 语言函数详解:定义、声明、调用与参数传递
  5. C 语言位域:高效内存使用的实战技巧
  6. C 语言文件 I/O 实战:创建、打开、读写与二进制操作
  7. C 语言可变参数详解:stdarg.h 实战指南
  8. C# 方法完全指南:定义、调用、递归与参数传递
  9. 深入理解 C# 委托:函数引用与事件的完整指南
  10. 掌握Verilog函数:高效RTL设计的复用利器
  11. MATLAB 函数详解:定义、工作区、输入输出与多种函数类型
  12. 精通 Python Lambda 函数:实用示例与最佳实践