#pragma directive is used to set priority of function so that they can be called before or after main.
startup pragma : It allows the program to specify function that will be called before main.
#pragma startup <function name> [priority]
exit pragma : It allows the program to specify function that will be called after main.
#pragma exit <function name> [priority]
Here,
<function name>
Must be declared or defined before the pragma line is reached and it must not take any arguments and must return void.
eg: void function(void);
[priority]
0 = Highest priority
0-63 = Used by C libraries
64 = First available user priority
100 = Default priority
255 = Lowest priority
Note:
1. Do not use priorities from 0 - 63 because these are used by C libraries.
2. Function with higher priorities are called first at startup and last at exit.
3. Lesser number - higher priority (Sometimes this might be confusing).
Example Code:
#include<stdio.h>
void first();
void second();
#pragma startup first 105
#pragma startup second
#pragma exit first 105
#pragma exit second
void main(){
printf("I am in main.\n");
}
void first(){
printf("I am in first. \n");
}
void second(){
printf("I am in second\n");
}
Output:
I am in second.
I am in first.
I am in main.
I am in first.
I am in second.
No comments:
Post a Comment