C Tutorial
Lets consider this c program which computes the area and perimeter of a circle.
#include<stdio.h> void main() { int radius; float area, perimeter; printf("\nEnter radius of a circle: "); scanf("%d", &radius); computecircleparams(radius, &area, &perimeter); printf("\nCircle Area: %f", area); printf("\nCircle Perimeter: %f", perimeter); } void computecircleparams(int cradius, float *carea, float *cperimeter) { *carea = 3.14 * cradius * cradius; *cperimeter = 2 * 3.14 * cradius; }
We have missed function declaration here, so getting implicit function declaration warning message during compilation.
$ cc multiple-return-values.c multiple-return-values.c: In function ‘main’: multiple-return-values.c:9:3: warning: implicit declaration of function ‘computecircleparams’ [-Wimplicit-function-declaration] computecircleparams(radius, &area, &perimeter); ^~~~~~~~~~~~~~~~~~~ multiple-return-values.c: At top level: multiple-return-values.c:14:6: warning: conflicting types for ‘computecircleparams’ void computecircleparams(int cradius, float *carea, float *cperimeter) ^~~~~~~~~~~~~~~~~~~ multiple-return-values.c:9:3: note: previous implicit declaration of ‘computecircleparams’ was here computecircleparams(radius, &area, &perimeter);
yes we can execute the c program and get the output.
Output:
$ cc multiple-return-values.c $ ./a.out Enter radius of a circle: 10 Circle Area: 314.000000 Circle Perimeter: 62.799999
If we declare a function 'computecircleparams' if we define a function after main function otherwise define before main function, we could avoid this warning message during compilation.
function declaration is in before main funtion,
#include<stdio.h> void computecircleparams(int, float*, float*); void main() { int radius; float area, perimeter; printf("\nEnter radius of a circle: "); scanf("%d", &radius); computecircleparams(radius, &area, &perimeter); printf("\nCircle Area: %f", area); printf("\nCircle Perimeter: %f", perimeter); } void computecircleparams(int cradius, float *carea, float *cperimeter) { *carea = 3.14 * cradius * cradius; *cperimeter = 2 * 3.14 * cradius; }
function declaration is in inside main function,
#include<stdio.h> void main() { int radius; float area, perimeter; void computecircleparams(int, float*, float*); printf("\nEnter radius of a circle: "); scanf("%d", &radius); computecircleparams(radius, &area, &perimeter); printf("\nCircle Area: %f", area); printf("\nCircle Perimeter: %f", perimeter); } void computecircleparams(int cradius, float *carea, float *cperimeter) { *carea = 3.14 * cradius * cradius; *cperimeter = 2 * 3.14 * cradius; }
define function before main function,
#include<stdio.h> void computecircleparams(int cradius, float *carea, float *cperimeter) { *carea = 3.14 * cradius * cradius; *cperimeter = 2 * 3.14 * cradius; } void main() { int radius; float area, perimeter; printf("\nEnter radius of a circle: "); scanf("%d", &radius); computecircleparams(radius, &area, &perimeter); printf("\nCircle Area: %f", area); printf("\nCircle Perimeter: %f", perimeter); }
C Tutorial
Privacy Policy | Copyright2020 - All Rights Reserved. | Contact us
| Report website issues in Github
| Facebook page
| Google+ page