4 ms·
When I compile the example, i get: 0x7ffd0b57ebd0 0x7ffd0b57ebd8 0 OK, so gcc reordered a & b; I'll fix this by chaning the initialisation of p and q to:
by joosteto 8y ago
When I compile the example, i get:
0x7ffd0b57ebd0 0x7ffd0b57ebd8 0
OK, so gcc reordered a & b; I'll fix this by chaning the initialisation of p and q to:
int *p = &a + 1;
int *q = &b;
But when I now run the example, I get:
gcc -o c c.c && ./c
0x7ffe55eb0aa4 0x7ffe55eb0aa4 1
gcc -O -o c c.c && ./c
0x7ffcfeffd914 0x7ffcfeffd914 0
So, p==q only evaluates to 1 if optimisation is enabled.
$ gcc --version
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
- psyklic 8y agoIt shows the exact options the author used if you click on GCC: Version: 8.1.1 Options: -std=c11 -O1 Target: x86_64-redhat-linux