Functions help you organize your code into small, reusable blocks. You declare a function to tell the program it exists, and define it to explain what it does.
Function declaration and definition
return_type function_name(parameter_list); // Function declaration return_type function_name(parameter_list) { // function body (definition) }
The return_type tells what type of value the function will give back.
The parameter_list is a list of inputs the function needs, or empty if none.
add that takes two integers and returns an integer.int add(int a, int b);
add function. It adds two numbers and returns the result.int add(int a, int b) { return a + b; }
greet that takes no inputs and returns nothing (void). It prints a greeting.void greet(void); void greet(void) { printf("Hello!\n"); }
This program declares a function multiply before main. Then it defines it after main. The program calls multiply to multiply 4 and 5 and prints the result.
#include <stdio.h> // Function declaration int multiply(int x, int y); int main() { int result = multiply(4, 5); printf("4 times 5 is %d\n", result); return 0; } // Function definition int multiply(int x, int y) { return x * y; }
Function declaration is optional if the function is defined before it is used.
Always match the declaration and definition exactly (same return type, name, and parameters).
Use void in parameters if the function takes no arguments.
Declare functions to tell the program about them before use.
Define functions to explain what they do.
Functions help keep code organized and reusable.
Practice
Solution
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.Step 2: Differentiate declaration from definition
Declaration does not contain the function's code; that is done in the definition.Final Answer:
To tell the compiler about the function's name, return type, and parameters before its use -> Option CQuick Check:
Function declaration = Inform compiler [OK]
- Confusing declaration with definition
- Thinking declaration runs the function
- Assuming declaration allocates memory
Solution
Step 1: Identify correct syntax for declaration
A function declaration includes the return type, function name, parameter list, and ends with a semicolon.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.Final Answer:
int add(int a, int b); -> Option DQuick Check:
Declaration ends with semicolon [OK]
- Missing semicolon at end
- Including function body in declaration
- Wrong parameter syntax
#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;
}Solution
Step 1: Understand function declaration and call
The function 'multiply' is declared before main and defined after. main calls multiply(3, 4).Step 2: Calculate function return value
multiply returns 3 * 4 = 12, which is printed by printf.Final Answer:
12 -> Option AQuick Check:
3 * 4 = 12 [OK]
- Thinking declaration runs code
- Confusing output with parameters
- Expecting compilation error due to declaration
int sum(int a, int b)
{
return a + b
}
Solution
Step 1: Check syntax inside function body
The return statement must end with a semicolon in C.Step 2: Identify missing semicolon
Here, 'return a + b' lacks a semicolon, causing a syntax error.Final Answer:
Missing semicolon after return statement -> Option BQuick Check:
Statements end with semicolon [OK]
- Omitting semicolon after return
- Misunderstanding parameter syntax
- Changing return type unnecessarily
Solution
Step 1: Check function declaration matches definition
Declaration and definition must have same return type (float) and parameters (three ints).Step 2: Ensure correct calculation for float average
To get float result, divide by 3.0 (float), not 3 (int).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.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 AQuick Check:
Float division needs 3.0 [OK]
- Using integer division instead of float
- Mismatching declaration and definition types
- Omitting function declaration
Ready to prove it?
Pass the test and this pattern moves unknown
