در مورد برنامه های طولانی و پیچیده که شامل چندین قسمت منطقی تقریبا مستقلی
هستند بهتر است برای هر قسمت منطقی ، برنامه ای نوشته و سپس آنها را به یکدیگر
متصل (Link) کرد . هر یک از این قسمتها یک زیر برنامه نام دارند . استفاده از
زیر برنامه جهت طراحی برنامه ها ، دارای مزایای زیادی است که بر اهل کامپیوتر
پوشیده نیست . در زبانهای برنامه سازی مختلف معمولادو نوع زیربرنامه وجود دارند
و عبارتند از : ( الف ) زیر برنامه های تابع ( ب ) زیر برنامه های زیر روال ، در
زبان C فقط زیربرنامه تابع مورد استفاده قرار میگیرد. کاری را که زیربرنامه های
زیر روال در سایر زبان های برنامه سازی انجام می دهند ، در زبان C توسط زیر
برنامه های تابع صورت می گیرد . در اینجا منظور از زیر برنامه ، توابع هستند .
توابع در زبان C دارای ساختمان خاصی هستند که شکل (1) آن را نشان می دهد .
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
<نوع تابع=""> <نام تابع=""> ( اسامی پارامترها ) | |
تعریف پارامترها | | { |
|
بدنه تابع | | } |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
شکل (1) . ساختمان توابع
در شکل (1) منظور از نوع تابع ، یکی از انواع معتبر در زبان C است که نوع
مقدار برگردانده شده توسط تابع را مشخص می کند . تعیین نوع توابع ، اختیاری
است . اگر تابعی تعیین نوع نگردد کامپایلر زبان C فرض می کند مقداری که توسط
تابع برگردانده می شود از نوع صحیح است . نام تابع از قانون نامگذاری برای
متغیرهای تبعیت می کند . اسامی پارامترها شامل متغیرهایی است که باید به تابع
منتقل کردند . اگر تعداد پارامترها بیش از یکی باشد یا کاما از یکدیگر جدا
می شوند . تعریف پارامترها مجموعه دستوراتی است که نوع پارامترها را تعیین
می نماید . تعیین نوع پارامترها در حین تعریف تابع نیز امکان پذیر است . بدنه
تابع شامل دستورالعمل هایی است که عمل تابع را مشخص می کند .
نکاتی را که باید در مورد توابع در نظر داشت عبارتند از : 1
کلیه توابع فرعی بعد از تابع اصلی (()main) تعریف می شوند . 2
اگر نوع تابعی غیراز نوع صحیح باشد، نوع آن باید در تابع فراخواننده
به کامپایلر اعلان شود . 3
برای اجرای تابع باید آنها را فراخوانی نمود ( فراخوانی توابع توسط نام
آنها انجام می شود ) . 4
همانطور که متغیرهای قابل استفاده در تابع اصلی باید در ابتدای این تابع
تعریف شوند ، متغیرهای مورد نیاز هر تابع فرعی نیز باید در ابتدای آنها تعریف
کردند . 5
تعریف یک تابع در داخل تابع دیگر امکان پذیر نیست . ولی فراخوانی سطوح
مختلف توابع ، ممکن است . 6
توابع از نظر تعداد مقادیری که به تابع فراخواننده برمی گردانند ، به سه
دسته تقسیم می شوند . نام>نوع>