English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم كيفية إنشاء الدوال المستخدمة في برمجة لغة C باستخدام الأمثلة.
الدالة هي مكتبة من الأوامر تُستخدم لتنفيذ مهمة معينة.
يسمح لك C بتعريف الدوال حسب الحاجة. هذه الدوال تُدعى الدوال المستخدمة. على سبيل المثال:
افترض أنك بحاجة إلى إنشاء دائرة وتلوينها بناءً على القطر واللون. يمكنك إنشاء دالتين لحل هذه المشكلة:
دالة createCircle()
دالة color()
هذا مثال على إضافة إثنين من الأعداد الصحيحة. من أجل تنفيذ هذه المهمة، قمنا بإنشاء دالة مستخدمة addNumbers().
#include <stdio.h> int addNumbers(int a, int b); // 函数原型 int main() { int n1,n2,sum; printf("输入两个数字: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // 函数调用 printf("sum = %d",sum); return 0; } int addNumbers(int a, int b) // 函数定义 { int result; result = a+b; return result; // 返回语句 }
函数原型只是函数的声明,用于指定函数的名称,参数和返回类型。它不包含函数体。
函数原型向编译器提供信息,该函数以后可以在程序中使用。
returnType functionName(type1 argument1, type2 argument2, ...);
在上面的示例中,函数原型 int addNumbers(int a, int b); 为编译器提供了以下信息:
函数的名称是 addNumbers()
函数的返回类型是 int
类型的两个参数 int 传递给函数
如果在 main() 函数之前定义了用户定义的函数,则不需要函数原型。
程序的控制权通过调用转移到用户定义的函数。
functionName(argument1, argument2, ...);
在上面的示例中,使用 main() 函数内部的语句进行函数 addNumbers(n1, n2); 调用。
函数定义包含执行特定任务的代码块。在我们的示例中,将两个数字相加并返回。
函数定义的语法
returnType functionName(type1 argument1, type2 argument2, ...) { // 函数体 }
调用函数时,程序的控制权将转移到函数定义中。并且,编译器开始在函数体内执行代码。
在编程中,参数是指传递给函数的变量。在上面的示例中,在函数调用期间传递了两个变量 n1 和 n2。
参数 a 和 b 接受函数定义中传递的参数。这些参数称为函数的形式参数。
传递给函数的参数类型和形式参数必须匹配,否则,编译器将引发错误。
如果 n1 是 char 类型,a 也应该是 char 类型。如果 n2 为浮点型,则变量 b 也应为浮点型。
也可以在不传递参数的情况下调用函数。
语句 return 终止函数的执行并将值返回给调用函数。在 return 语句之后,程序控制权将转移到调用函数。
在上面的示例中,变量的值 result 返回到主函数。变量 sum 在 main() 函数中被分配了该值。
return (expression);
على سبيل المثال،
return a; return (a+b);
يجب أن يكون نوع القيمة التي يتم إرجاعها من الوظيفة مطابقاً لنوع العودة المحدد في原型 الوظيفة والتعريف الوظيفي.
زيارة هذه الصفحة للحصول على معلومات عنمرور المعلمات وإرجاع القيم منلمعرفة المزيد.