Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Practical Use Cases | Conditional compilation
C Preprocessing

bookPractical Use Cases

What are #ifdef and #ifndef

#define DEBUG_MODE
#ifdef DEBUG_MODE
    printf("Debugging is enabled!\n");
#endif
#ifndef RELEASE_MODE
    printf("Running in development mode.\n");
#endif

Error macro

Task

Swipe to start coding

  1. Use the necessary macro to check the existence of PROTOCOL_TCP and PROTOCOL_UDP, and don't forget to properly close the necessary macro.
  2. Use a macro to check the values of the PROTOCOL_TCP and PROTOCOL_UDP macros, and correctly close it.
  3. Use a macro to check an additional condition.
  4. Use a macro to create an error message in case of an error.

Solution

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 3
single

single

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Suggested prompts:

Can you explain the difference between #ifdef and #ifndef with more examples?

When should I use #error in my code?

What happens if I use #ifdef or #ifndef with a macro that is not defined?

close

Awesome!

Completion rate improved to 5.56

bookPractical Use Cases

Swipe to show menu

What are #ifdef and #ifndef

#define DEBUG_MODE
#ifdef DEBUG_MODE
    printf("Debugging is enabled!\n");
#endif
#ifndef RELEASE_MODE
    printf("Running in development mode.\n");
#endif

Error macro

Task

Swipe to start coding

  1. Use the necessary macro to check the existence of PROTOCOL_TCP and PROTOCOL_UDP, and don't forget to properly close the necessary macro.
  2. Use a macro to check the values of the PROTOCOL_TCP and PROTOCOL_UDP macros, and correctly close it.
  3. Use a macro to check an additional condition.
  4. Use a macro to create an error message in case of an error.

Solution

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 3
single

single

some-alt