File: Stare vježbe/vjezbe06/36b__prototip.c

  1. /*
  2.   36b__prototip_b.c
  3.   Prototip funkcije -- funkcija se nalazi iza main-a, a nema prototip
  4.  
  5.   U ovom slucaju dogadja se sljedece:
  6.   (1) Prevodilac pretpostavlja da funkcija vraca podatak tipa int i
  7.   ne pravi nikakve pretpostavke o broju i tipu argumenata.
  8.   (2) Na svaki stvarni argument cjelobrojnog tipa primijenjuje se
  9.   integralna promocija (konverzija argumenata tipa short i char
  10.   u int), a svaki stvarni argument tipa float konvertira se u tip
  11.   double. Nakon toga broj i tip (konvertiranih) stvarnih
  12.   argumenta mora se podudarati s brojem i tipom formalnih
  13.   argumenata da bi poziv funkcije bio korektan.
  14. */
  15.  
  16. #include <stdio.h>
  17.  
  18. int main()
  19. {
  20. float x=2.0;
  21.  
  22. printf ("%d\n", f(2)); /* pozivamo funkciju sa int-om kao parametrom */
  23. printf ("%d\n", f(x)); /* pozivamo funkciju sa float-om kao parametrom */
  24.  
  25. return 0;
  26. }
  27.  
  28.  
  29. int f ( double x )
  30. {
  31. return (int) (x*x);
  32. }
  33.