Error: "Implicit declaration of function..." on all my functions
c
Solution
You have to declare the functions before you use them:
int computeShort(); // declaration here
int main()
{
computeShort();
}
int computeShort()
{
// definition here
}
An alternative, but less advisable approach is to define the functions before main, since the definition serves as declaration as well:
int computeShort()
{
// return 4;
}
int main()
{
computeShort();
}
But generally it's better practice to have a separate declaration for the functions used, because then you aren't obliged to maintain a certain order in the implementation.
Problem
Here's the code ``` main() { short sMax = SHRT_MAX; int iMax = INT_MAX; long lMax = LONG_MAX; // Printing min and max values for types short, int and long using constants printf("range of short int: %i ... %i\n", SHRT_MIN, SHRT_MAX); printf("range of int: %d ... %d\n", INT_MIN, INT_MAX); printf("range of long int: %ld ... %ld\n", LONG_MIN, LONG_MAX); // Computing and printing the same values using knowledge of binary numbers // Short int computed_sMax = computeShort() / 2; printf("\n Computed max and min short values: \n %i ... ", computed_sMax); int computed_sMin = (computeShort()/2 + 1) * -1; printf("%i\n", computed_sMin); //Int int computed_iMax = computeInt() / 2; printf("\n Computed min and max int values: \n %i ... ", computed_iMax); int computed_iMin = computeInt() / 2; printf("%i", computed_iMin); return 0; } int computeShort() { int myShort = 0; int min = 0; int max = 16; for (int i = min; i < max; i++) { myShort = myShort + pow(2, i); } return myShort; } int computeInt() { int myInt = 0; int min = 0; int max = 32; for (int i = min; i < max; i++) { myInt = myInt + pow(2, i); } return myInt; } ```