This directive provides some additional information to the compiler and it is also used to turn on or off certain special features. For example, #pragma startup and #pragma exit were used to call specific functions during program entry (before main()) and exit(after main()) correspondingly.
#include <stdio.h>
void in() {
printf("#pragma start in\n");
printf("Inside in\n");
}
void out(){
printf("#pragma exit out\n");
printf("Inside out()\n");
}
#pragma startup in
#pragma exit out
int main() {
printf("I am inside main function\n");
printf("Going out of main()\n");
return 0;
}
suppresses warnings related to parameters like unused parameters.
suppress warning related to unreachable codes.
#include <stdio.h>
#pragma warn -rvl
#pragma warn -par
#pragma warn -rch
int retval() {
printf("missing to return value\n");
}
int unused_para(int a) {
printf("I m not using my parameter value\n");
return 0;
}
int unreachable_code() {
printf("have some code after return statment\n");
return 0;
printf("Code after return statement\n");
printf("Unreachable code\n");
}
int main() {
retval();
unused_para(8);
unreachable_code();
return 0;
}
jp@jp-VirtualBox:~/cpgms/$ ./a.out
missing to return value
I m not using my parameter value
have some code after return statment