خوب است قبل از بحث در مورد اینگونه توابع ، مثالی را متذکر شویم .
مثال 1: برنامه ای که با استفاده از یک تابع ، زمانی که شامل ساعت ، دقیقه
و ثانیه است را از ورودی خوانده و این زمان را به ثانیه محاسبه می نماید : main)(
{
convert )(;
}
convert)(
{
int hours/minutes/second/time ;
printf(enter time to be convertd);
printf(\n hour/minutes/second : );
scanf(%d%d/&hours/&minutes);
printf(%d/&second);
time=(60*hours+minutes)*60+second ;
printf(\ntime is: %d second./time);
}
به نمونه ای از خروجی برنامه مثال 1 توجه نمایید : enter time to be convertd
hour/minutes/secound : 4 8 30
time is: 14910 second.
در مثال 1 از تابعی به نام convert استفاده شده است که هیچگونه پارامتری
ندارد . متغیرهای مورد نیاز این تابع ، تعریف شده ، اطلاعات از ورودی خوانده
می شوند و پس از انجام محاسبات به خروجی منتقل می گردند . این تابع هیچ مقداری
را به تابع فراخوانده ( تابع اصلی ) برنمی گرداند . به چنین توابعی توابع از
نوع void گفته می شود . اگر بخواهیم برنامه مثال 1 را با استفاده از این تعریف
( تابع از نوع void ) بنویسیم ، مثال (2) حاصل خواهد شد .
مثال 2: برنامه مثال 1 با استفاده از تعریف نوع void : main)(
{
void convert )(;
convert )(;
}
void convert)(
{
int hours/minutes/second/time ;
printf(enter time to be convertd);
printf(\n hour/minutes/second : );
scanf(%d%d/&hours/&minutes);
printf(%d/&second);
time=(60*hours+minutes)*60+second ;
printf(\ntime is: %d second./time);
}
همانطوریکه در مثال 2 مشاهده میشود باید درتابع فراخواننده ( در اینجا تابع
اصلی ) نوع تابع convert را که از نوع void است به کامپایلر اعلان نمود وسپس در
حین تعریف تابع نوع آن مشخص گردد (()void convert) .