c implicit function declaration warning issue

c implicit function declaration warning issue

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);

Whether c program will work due to this warning message ?

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

How to fix implicit function declaration warning message ?

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 Program Examples

C program to cmpute matrix addition using two dimensional array

C program to cmpute matrix subtraction using two dimensional array

C program to cmpute matrix multiplication using two dimensional array

C program to compute different order of matrix multiplication

C program to generate identity matrix for required rows and columns

C program to validate whether matrix is identity matrix or not

C program to validate whether matrix is sparse matrix or not

C program to validate whether matrix is dense matrix or not

C program to generate string as matrix diagonal characters using two dimesional array

C Program to find number of weeks, months and years from days

C Program To Implement Linked List and Operations

C Program To Implement Sorted Linked List and Operations

C Program to Reverse the Linked List

C Program to Stack and Operations using Linked List

C Program to Queue and Operations using Linked List

C Program to calculate multiplication of two numbers using pointers

C Program To Calculate Median

C Program To Calculate Standard Deviation

C Program For Fahrenheit To Celsius Conversion

C Program To Calculate Average

C Program For Quadratic Equations

C Program To Check Character Type

C Program To Find Largest Of Three Values

C Program To Find Max Value In Array

C Program to Find Min Value In Array

C Program to Print Multiplication Table

C Program for Frequency Counting

C Program to read a line of text

C Program To Find ASCII Value For Any Character

C Program To Find A Character Is Number, Alphabet, Operator, or Special Character

C Program To Find Reverse Case For Any Alphhabet using ctype functions

C Program To Find Number Of Vowels In Input String

C Program Pointers Example Code

C Program To Find Leap Year Or Not

C Program To Swap Two Integers Using Call By Reference

C Program To Swap Two Integers Without Using Third Variable

C Program To List Prime Numbers Upto Limit

C Program To List Composite Numbers Upto Limit

C Program To Calculate Compound Interest

C Program To Calculate Depreciation Amount After of Before Few Years

C Program To Calculate Profit Percentage

C Program To Calculate Loss Percentage

C Program To Find String Is Polindrome Or Not

C Program To Find Factorial of a Number

C Program To Check Number is a Polindrome or Not

C Program To Generate Random Integers

C Program To Generate Random Float Numbers

C Program to find Square Root of a Number

C Program to find Area of a Rectangle

C Program to find Perimeter of a Rectangle

C Program to find Area of a Square

C Program to find Area of a Triangle

C Program to find Area of a Parallelogram

C Program to find Area of a Rhombus

C Program to find Area of a Trapezium

C Program to find Area of a Circle and Semi-circle

C Program to find Circumference of a Circle and Semi-circle

C Program to find length of an arc

C Program to find Area of a Sector

C Program to find string length for list of strings

C Program to find the character at index in a string

C Program to compare characters

C Program to find eligible to vote or not

C Program to get system current date and time on linux

C Program to get positive number

C Program to implement calculator

C Program to implement banking system

C Program to find sum of number

C Program for array traversal using pointers

C Program for array traversal in reverse order using pointers

C Program to find particular element occurrences count in array

C Program to find even elements occurrences count in array

C Program to find odd elements occurrences count in array

C program to find week day in word from week day in number using two dimentsional array

C program to find month in word from month in number using pointers

C program to compute PMT for a loan

C program to compute EMI and round up using floor

C program to compute EMI and round up using ceil

C program to compute the EMI table with Interest, Principal and Balance

C program to get multiple line of string

C program to find nth element in array using pointers

C program to compute the volume of a cube

C program to compute the volume of a box

C program to compute the volume of a sphere

C program to compute the volume of a triangular prism

C program to compute the volume of a cylinder

C Program to Compute Perimeter of Square

C Program to compute the perimeter of triangle

C Program to compute the discount rate

C Program to compute the sales tax

C program to add, delete, search a record or show all using binary file

C program to add, delete, search a record or show all using text file

Privacy Policy  |  Copyright@2017 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Email Facebook Google LinkedIn Twitter
^