Header files help organize code by keeping declarations separate from the main code. The include directive lets you reuse code easily by adding these declarations where needed.
Header files and include directive
#include <header_file> // or #include "header_file.h"
Use angle brackets <> for standard library headers.
Use double quotes "" for your own header files in the project.
#include <stdio.h>
#include "myheader.h"This program shows how a function can be declared (like in a header) and then defined later. The include directive is used here to bring in the standard input/output functions.
#include <stdio.h> // Function declaration in header style void greet(); int main() { greet(); return 0; } // Function definition void greet() { printf("Hello from the greet function!\n"); }
Header files usually contain declarations, not full function definitions.
Including the same header multiple times can cause errors; use include guards or #pragma once to prevent this.
The include directive literally copies the header file content into your source file before compiling.
Header files store declarations to share between source files.
#include adds header file content to your code.
Use <> for system headers and "" for your own headers.
Practice
Solution
Step 1: Understand what header files contain
Header files usually contain declarations like function prototypes and macros, not executable code.Step 2: Understand their role in sharing code
They allow multiple source files to share these declarations, so the compiler knows about functions and variables.Final Answer:
To store declarations and share them between source files -> Option AQuick Check:
Header files = declarations shared [OK]
- Thinking header files contain executable code
- Confusing header files with source files
- Believing header files speed up compilation
- Assuming header files store variable values
stdio.h?Solution
Step 1: Recall syntax for system headers
System headers use angle brackets <> to tell the compiler to look in system directories.Step 2: Check each option
#include uses #include with <stdio.h>, which is correct syntax. #include "stdio.h" uses quotes which are for user headers. Options C and D miss the # or angle brackets.Final Answer:
#include <stdio.h> -> Option BQuick Check:
System headers use <> [OK]
- Using quotes for system headers
- Omitting the # in #include
- Not using angle brackets or quotes
- Writing include without #
#include <stdio.h>
#include "myheader.h"
int main() {
printMessage();
return 0;
}Assuming
myheader.h contains:void printMessage() {
printf("Hello from header!\n");
}Solution
Step 1: Understand #include "myheader.h" effect
The content of myheader.h is inserted, so printMessage() is defined before main.Step 2: Check function call and output
printMessage() prints "Hello from header!\n", so the program outputs that line.Final Answer:
Hello from header! -> Option DQuick Check:
Included function runs and prints message [OK]
- Assuming function is undeclared without prototype
- Thinking header files can't contain function definitions
- Confusing compile and runtime errors
- Ignoring the newline in output
#include
#include
int main() {
printHello();
return 0;
}Assuming
myheader.h is a user-defined header file in the project folder.Solution
Step 1: Check #include syntax for user headers
User headers should be included with quotes "myheader.h" to search local directories first.Step 2: Understand effect of wrong include syntax
Using angle brackets makes compiler look in system directories, so it may not find myheader.h causing an error.Final Answer:
Using angle brackets for a user-defined header file -> Option CQuick Check:
User headers use "" not <> [OK]
- Using < > for user headers
- Thinking #include needs semicolons
- Assuming printHello() is always undefined
- Ignoring main return type
mathutils.h that declares a function int add(int a, int b); and use it in two source files main.c and calc.c. Which is the best practice to avoid multiple definition errors?Solution
Step 1: Understand declarations vs definitions in headers
Headers should contain declarations (function prototypes), not definitions (function bodies), to avoid multiple definitions.Step 2: Apply to multiple source files
Define the function in one source file (e.g., calc.c) and declare it in mathutils.h included by both files.Final Answer:
Put only the function declaration in mathutils.h and define the function in one source file -> Option AQuick Check:
Declarations in headers, definitions in one source file [OK]
- Defining functions in headers causing multiple definitions
- Not including header in all source files needing declaration
- Defining function in multiple source files
- Including header only in one source file
Ready to prove it?
Pass the test and this pattern moves unknown
