Bird
Raised Fist0
Cprogramming~5 mins

Function declaration and definition - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a function declaration in C?
A function declaration tells the compiler about a function's name, return type, and parameters without giving the full body. It acts like a promise that the function will be defined later.
Click to reveal answer
beginner
What is a function definition in C?
A function definition provides the full body of the function, including the code that runs when the function is called.
Click to reveal answer
intermediate
Why do we use function declarations before definitions?
Function declarations allow the compiler to know about functions before they are used, so you can call functions before their full code appears in the file.
Click to reveal answer
beginner
Identify the function declaration and definition in this code:
int add(int a, int b);
int main() {
return add(2, 3);
}
int add(int a, int b) {
return a + b;
}
The line int add(int a, int b); is the function declaration. The block starting with int add(int a, int b) { ... } is the function definition.
Click to reveal answer
intermediate
Can a function be declared multiple times but defined only once?
Yes. You can declare a function many times (usually in header files), but you must define it only once to avoid errors.
Click to reveal answer
What does a function declaration in C NOT include?
AThe function's return type
BThe function's name
CThe function's parameters
DThe function's body (code inside)
Where should a function declaration usually be placed?
ABefore the function is called
BAfter the function is defined
CInside the function body
DOnly in the main function
What happens if you call a function without declaring or defining it first?
ACompiler error
BProgram runs normally
CFunction is automatically declared
DFunction is ignored
Which of these is a correct function declaration?
Aint multiply(int x, int y) { return x * y; }
Bmultiply int(int x, int y);
Cint multiply(int x, int y);
Dint multiply x, y;
How many times should a function be defined in a C program?
AMultiple times
BOnce
CNever
DDepends on the number of calls
Explain the difference between a function declaration and a function definition in C.
Think about what the compiler needs to know before running the program.
You got /6 concepts.
    Why is it important to declare functions before calling them in C programs?
    Consider what happens if the compiler sees a function call it does not know about.
    You got /6 concepts.

      Practice

      (1/5)
      1. What is the purpose of a function declaration in C?
      easy
      A. To allocate memory for variables inside the function
      B. To execute the function's code
      C. To tell the compiler about the function's name, return type, and parameters before its use
      D. To print the function's output

      Solution

      1. Step 1: Understand function declaration role

        A function declaration informs the compiler about the function's name, return type, and parameters so it can be used before its definition.
      2. Step 2: Differentiate declaration from definition

        Declaration does not contain the function's code; that is done in the definition.
      3. Final Answer:

        To tell the compiler about the function's name, return type, and parameters before its use -> Option C
      4. Quick Check:

        Function declaration = Inform compiler [OK]
      Hint: Declaration tells compiler about function before use [OK]
      Common Mistakes:
      • Confusing declaration with definition
      • Thinking declaration runs the function
      • Assuming declaration allocates memory
      2. Which of the following is a correct function declaration in C?
      easy
      A. int add { int a, int b; };
      B. int add(int a, int b) {}
      C. add(int a, int b) int;
      D. int add(int a, int b);

      Solution

      1. Step 1: Identify correct syntax for declaration

        A function declaration includes the return type, function name, parameter list, and ends with a semicolon.
      2. Step 2: Check each option

        int add(int a, int b); matches correct syntax: return type 'int', name 'add', parameters '(int a, int b)', and semicolon. Others have syntax errors or missing semicolon.
      3. Final Answer:

        int add(int a, int b); -> Option D
      4. Quick Check:

        Declaration ends with semicolon [OK]
      Hint: Declaration ends with semicolon and no body [OK]
      Common Mistakes:
      • Missing semicolon at end
      • Including function body in declaration
      • Wrong parameter syntax
      3. What will be the output of this C program?
      #include <stdio.h>
      
      int multiply(int x, int y);
      
      int main() {
          printf("%d", multiply(3, 4));
          return 0;
      }
      
      int multiply(int x, int y) {
          return x * y;
      }
      medium
      A. 12
      B. 7
      C. 34
      D. Compilation error

      Solution

      1. Step 1: Understand function declaration and call

        The function 'multiply' is declared before main and defined after. main calls multiply(3, 4).
      2. Step 2: Calculate function return value

        multiply returns 3 * 4 = 12, which is printed by printf.
      3. Final Answer:

        12 -> Option A
      4. Quick Check:

        3 * 4 = 12 [OK]
      Hint: Declaration allows call before definition [OK]
      Common Mistakes:
      • Thinking declaration runs code
      • Confusing output with parameters
      • Expecting compilation error due to declaration
      4. Identify the error in this function declaration and definition:
      int sum(int a, int b)
      {
          return a + b
      }
      
      medium
      A. Function name is invalid
      B. Missing semicolon after return statement
      C. Parameters must be declared outside parentheses
      D. Return type should be void

      Solution

      1. Step 1: Check syntax inside function body

        The return statement must end with a semicolon in C.
      2. Step 2: Identify missing semicolon

        Here, 'return a + b' lacks a semicolon, causing a syntax error.
      3. Final Answer:

        Missing semicolon after return statement -> Option B
      4. Quick Check:

        Statements end with semicolon [OK]
      Hint: Return statements need semicolon [OK]
      Common Mistakes:
      • Omitting semicolon after return
      • Misunderstanding parameter syntax
      • Changing return type unnecessarily
      5. You want to declare and define a function that calculates the average of three integers and returns a float. Which of the following is the correct declaration and definition?
      hard
      A. float average(int a, int b, int c); float average(int a, int b, int c) { return (a + b + c) / 3.0; }
      B. int average(int a, int b, int c); int average(int a, int b, int c) { return (a + b + c) / 3.0; }
      C. float average(int a, int b, int c); float average(int a, int b, int c) { return (a + b + c) / 3; }
      D. float average(int a, int b, int c) { return (a + b + c) / 3; }

      Solution

      1. Step 1: Check function declaration matches definition

        Declaration and definition must have same return type (float) and parameters (three ints).
      2. Step 2: Ensure correct calculation for float average

        To get float result, divide by 3.0 (float), not 3 (int).
      3. Step 3: Verify other options

        Integer division (/ 3) causes truncation. Declaring int return but dividing by 3.0 causes type mismatch. Missing declaration prevents prior use.
      4. Final Answer:

        float average(int a, int b, int c); float average(int a, int b, int c) { return (a + b + c) / 3.0; } -> Option A
      5. Quick Check:

        Float division needs 3.0 [OK]
      Hint: Use float division (3.0) and matching declaration [OK]
      Common Mistakes:
      • Using integer division instead of float
      • Mismatching declaration and definition types
      • Omitting function declaration
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard