in c, what\'s the difference between a function declaration and a function prototype? in c, what\'s the difference between a function declaration and a function prototype? in c, what\'s the difference between a function declaration and a function prototype? Solution All identifiers have to be declared before they are used. This principle holds for functtions as well. For functions the declarions need to be before the first call of the function A declaration int func(); tells the compiler that there is a function func and also tells the return type of the function. But it doesn\'t specify the number or types of arguments that the function is intended to receive. A prototype int func(int p1,int p2); is similar but also specifies the number/type of parameters it is intended to receive. If the function has no parameters it can be defined as int func(void) .