??? 07/14/07 08:24 Read: times |
#141868 - within a loop Responding to: ???'s previous message |
Erik Malund said:
now, visualize this one: if (flag) { .... }the compiler is fully justified in copying flag to a register and testing it there forever if flag is not declared volatile. Maybe it's better to extend the example to: while(1) { if (flag) //should be sampled many times break; }If flag is not volatile the compiler may deduce flag does not change within the loop and change this to: if (!flag) //but is sampled only once { while(1) ; } |
Topic | Author | Date |
more to atomicity and such | 01/01/70 00:00 | |
Interesting example ... | 01/01/70 00:00 | |
which I did | 01/01/70 00:00 | |
Aside: Keil - Atomic functions | 01/01/70 00:00 | |
If you can afford it. | 01/01/70 00:00 | |
volatile | 01/01/70 00:00 | |
does this have some formal definition? | 01/01/70 00:00 | |
sequence points and side effects | 01/01/70 00:00 | |
what's exactly the value of volatile, then? | 01/01/70 00:00 | |
example | 01/01/70 00:00 | |
bu what is it good for then? | 01/01/70 00:00 | |
Ok, visualize this one | 01/01/70 00:00 | |
within a loop | 01/01/70 00:00 | |
Memory Mapped I/O | 01/01/70 00:00 | |
OK I see it now, thanks.![]() | 01/01/70 00:00 | |
volatile switch | 01/01/70 00:00 |