5. (Another trivial one)
char abc(int x);


abc is being declared as a function that takes an integer and returns a character. There is nothing to it.

Because we can see a semicolon after the declaration, we know it is only a prototype. The actual definition of the function will appear somewhere else. Perhaps later in the program, perhaps in another file. A prototype is a promise that such a function will be defined at some point. It also lets us see in advance what the declaration of the function will be like, so we know how to use it correctly.



It doesn't really make sense to ask about the size of a function, but in C the name of a function is automatically treated as a pointer to the place in memory where that function's executable code begins. Function names are pointers just like array names. So, if (sizeof abc) gives any result, it will be 4.