Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Communicating with the Compiler | Compiler Directives and Advanced Control
C Preprocessing

bookCommunicating with the Compiler

Each #pragma directive can vary widely, but most follow a general pattern. The instruction being given is specified by the directive-name. The optional arguments depend on the specific directive and the compiler in use.

header.h

header.h

copy
1
#pragma directive-name [optional arguments]

Include Once

The old way to ensure the header is included only once is using #ifndef / #define guards. While still widely used and fully portable, it requires boilerplate and manual work.

main.c

main.c

config.h

config.h

copy
12345678
#include <stdio.h> #include "config.h" #include "config.h" // Reinclusion — NO duplication will occur int main() { printf("%s v%s\n", APP_NAME, APP_VERSION); return 0; }

Ensures that a header file is included in the compilation only once, even if it is included multiple times in different places. It is an alternative (and more modern) approach to the traditional #ifndef pattern.

main.c

main.c

config.h

config.h

copy
12345678
#include <stdio.h> #include "config.h" #include "config.h" // Reinclusion — NO duplication will occur int main() { printf("%s v%s\n", APP_NAME, APP_VERSION); return 0; }
question mark

What is the purpose of the #pragma once directive in a header file?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Stel mij vragen over dit onderwerp

Vat dit hoofdstuk samen

Toon voorbeelden uit de praktijk

Awesome!

Completion rate improved to 5.56

bookCommunicating with the Compiler

Veeg om het menu te tonen

Each #pragma directive can vary widely, but most follow a general pattern. The instruction being given is specified by the directive-name. The optional arguments depend on the specific directive and the compiler in use.

header.h

header.h

copy
1
#pragma directive-name [optional arguments]

Include Once

The old way to ensure the header is included only once is using #ifndef / #define guards. While still widely used and fully portable, it requires boilerplate and manual work.

main.c

main.c

config.h

config.h

copy
12345678
#include <stdio.h> #include "config.h" #include "config.h" // Reinclusion — NO duplication will occur int main() { printf("%s v%s\n", APP_NAME, APP_VERSION); return 0; }

Ensures that a header file is included in the compilation only once, even if it is included multiple times in different places. It is an alternative (and more modern) approach to the traditional #ifndef pattern.

main.c

main.c

config.h

config.h

copy
12345678
#include <stdio.h> #include "config.h" #include "config.h" // Reinclusion — NO duplication will occur int main() { printf("%s v%s\n", APP_NAME, APP_VERSION); return 0; }
question mark

What is the purpose of the #pragma once directive in a header file?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 1
some-alt