Question: Consider the following program, which consists of two object modules: 1 / * foo 6 . c * / 2 void p 2 ( void

Consider the following program, which consists of two object modules:
1/* foo6.c */
2 void p2(void);
3
4 int main()
5{
6 p2();
7 return 0;
8}
1/* bar6.c */
2 #include
3
4 char main;
5
6 void p2()
7{
8 printf("0x%x
", main);
9}
When this program is compiled and executed on a Linux system, it prints the string
0x55
and terminates normally, even though p2 never initializes variable main.
Can you explain this?

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!