My project have 3 file, which are main.c , and 2 files for my library (increase.h and increase.c). In my main.c these is a function I have writen in increase.c, when i delete #include "increase.h" in main, I expected the program to crash but somehow it still gave my correct answer.
Here is my program
main.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a =9,b= 5;
printf("%d",inc(a));
}
increas.h
#ifndef INCREAS_H_INCLUDED
#define INCREAS_H_INCLUDED
int inc(int a);
#endif
increas.c
int inc(int a)
{
return a+1;
}
because you do not have the function prototype the compiler is using the implict return and parameters type which is
int. As your function returnsintand takesintparameter - it works fine.Try to pass and return the pointer to int or double and your program will invoke undefined behaviour and most likely to stop working correctly.