What does it mean when we mention prototype of a function in C language?

2017

What does it mean when we mention prototype of a function in C language?

Answer: C. DeclaringIn C, before a function is used the compiler needs to know its interface — the function's name, return type, and the type of every parameter it takes. A…

  1. A.

    Prototyping

  2. B.

    Calling

  3. C.

    Declaring

  4. D.

    Defining

Attempted by 461 students.

Show answer & explanation

Correct answer: C

In C, before a function is used the compiler needs to know its interface — the function's name, return type, and the type of every parameter it takes. A statement that specifies this interface without supplying the function's body is a function declaration; when that declaration also lists the parameter types (not just the count), it is specifically called a function prototype, as defined in the ISO C standard (C11, sections 6.2.1 and 6.7.6.3).

So mentioning or writing out a function's prototype in source code — stating its return type, name, and parameter types ahead of its use — is exactly the act of declaring that function to the compiler. That is why the correct answer is "Declaring."

  • Prototyping — not a distinct C-language construct or standard term for this act; C programmers and the ISO standard both describe writing the prototype as declaring the function.

  • Calling — happens later, when control and the argument values are handed to an already declared (or defined) function so its code actually runs; mentioning the prototype alone does not run anything.

  • Defining — requires supplying the function's body (the code inside { }); a prototype has no body, so writing one cannot be defining the function.

This also matches how C allows a function to be declared (via its prototype) any number of times across different files before it is defined exactly once — the prototype's entire job is to state the interface, which is precisely what "declaring" means.

Explore the full course: Uppsc Computer Operator Grade B

Loading lesson…