در برنامه زیر تابعی تعریف شده که حاصل جمع دو عدد را به تابع اصلی بازمی‌گرداند.
main ()
{
float sum (float , float) ;
float x , y ;
scanf(“%f %f” , x , y) ;
printf (“%f , sum (x , y)) ;
}
float sum (a , b)
float a , b ;
{
return (a + b) ;
}
همان طور که ملاحظه می کنید تابع sum از نوع اعشاری و با آرگومانهای اعشاری تعریف شده است. همچنین اعلان تابع پس از main آمده است. اما تابع مزبور می‌تواند قبل از تابع فراخواننده main نیز توصیف گردد که در این صورت برنامه فوق به صورت زیر خواهد بود.
float sum ()
main ()
{
float x , y ;
scanf(“%f %f” , x , y) ;
printf (“%f , sum(x , y)) ;
}
float sum(a , b)
float a , b ;
{
return (a + b) ;
}
همان طور که می‌‌بینید در تعریف تابع sum قبل از تابع main، آرگومانهای آن مشخص نشده است. در این حالت در بیشتر نسخه‌های زبان C نیازی نیست که نوع آرگومانها را در تعریف تابع تعیین کرد.