همانطور که قبلا گفته شد اگر در حین تعریف تابع از ذکر نوع آن خودداری شود کامپایلر فرض می کند مقداری که توسط این تابع برگردانده می شود ( توسط دستور return
) یک مقدار صحیح است . به اینگونه توابع ، توابع نوع صحیح گفته می شود . اگر بخواهیم توابعی غیر از نوع صحیح داشته باشیم باید :
الف ) نوع تابع ار در تابع فراخواننده به کامپایلر اعلان کنیم .
ب ) نوع تابع را در حین تعریف تابع مشخص کنیم ( با یک مثال این قسمت را شرح می دهیم ) .
مثال : برنامه ای که شعاع دایره ای را از ورودی خوانده و با محاسبه مساحت آن را به خروجی می برد .
#include <stdio.h> #include <conio.h> float area(float); void main() { float radius ; printf("\nenter a radius :"); scanf("%f",&radius); printf("area of circle is:"); printf("%.2f",area(radius)); getch(); } float area(float rad) { return 3.13*rad*rad; }
به نمونه ای از خروجی برنامه مثال توجه نمایید :
enter a radius:4
area of circle is: 50.08
همانطوری که در مثال بالا مشاهده می گردد ، مقداری که توسط تابع ()area برگردانده میشود از نوع اعشاری است ، لذا در اولین دستور تابع ()main نوع تابع ()area را به کامپایلر اعلان کرده و در حین تعریف این تابع ، نوع آن را نیز مشخص نموده ایم . در بسیاری از گونه های زبان C ذکر نوع نتیجه تابع ، در آرگومان آن الزامی نیست و درمثال بالا اولین دستور تابع ()main را نیز می توان به صورت زیر نوشت .