How to resolve the algorithm Pragmatic directives step by step in the C programming language
How to resolve the algorithm Pragmatic directives step by step in the C programming language
Table of Contents
Problem Statement
Pragmatic directives cause the language to operate in a specific manner, allowing support for operational variances within the program code (possibly by the loading of specific or alternative modules).
List any pragmatic directives supported by the language, and demonstrate how to activate and deactivate the pragmatic directives and to describe or demonstrate the scope of effect that the pragmatic directives have within a program.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Pragmatic directives step by step in the C programming language
The code begins by including the standard input/output library <stdio.h>
.
Then, it defines a macro Hi
using the #define
directive. This macro, when invoked, will print the string "Hi There." to the standard output.
Next, the start
and end
macros are defined to represent the beginning and end of the main
function, respectively.
The start
macro is invoked, followed by the Hi
macro. This prints "Hi There." to the standard output.
The code then uses the #warning
directive to generate a warning message. The #warning
directive is only supported by C99 and later compilers like GCC. The warning message is "Don't you have anything better to do ?"
The code then uses the #ifdef
directive to check if the program is being compiled on a Unix system. If so, it prints "This is an Unix system." to the standard output. If the program is being compiled on a Windows system, it prints "This is a 32 bit Windows system." or "This is a 64 bit Windows system.", depending on whether the system is 32-bit or 64-bit.
Finally, the end
macro is invoked to end the main
function.
The code is a bit tongue-in-cheek and demonstrates some of the more unusual features of the C preprocessor.
Source code in the c programming language
/*Almost every C program has the below line,
the #include preprocessor directive is used to
instruct the compiler which files to load before compiling the program.
All preprocessor commands begin with #
*/
#include<stdio.h>
/*The #define preprocessor directive is often used to create abbreviations for code segments*/
#define Hi printf("Hi There.");
/*It can be used, or misused, for rather innovative uses*/
#define start int main(){
#define end return 0;}
start
Hi
/*And here's the nice part, want your compiler to talk to you ?
Just use the #warning pragma if you are using a C99 compliant compiler
like GCC*/
#warning "Don't you have anything better to do ?"
#ifdef __unix__
#warning "What are you doing still working on Unix ?"
printf("\nThis is an Unix system.");
#elif _WIN32
#warning "You couldn't afford a 64 bit ?"
printf("\nThis is a 32 bit Windows system.");
#elif _WIN64
#warning "You couldn't afford an Apple ?"
printf("\nThis is a 64 bit Windows system.");
#endif
end
/*Enlightened ?*/
You may also check:How to resolve the algorithm Two bullet roulette step by step in the Kotlin programming language
You may also check:How to resolve the algorithm Image noise step by step in the Haskell programming language
You may also check:How to resolve the algorithm Memory allocation step by step in the BASIC programming language
You may also check:How to resolve the algorithm N-queens problem step by step in the Frink programming language
You may also check:How to resolve the algorithm Regular expressions step by step in the C# programming language