Thursday, May 17, 2012

Volatile identifier in C

  • Used for variables
  • To avoid compiler optimization
  • Used for memory mapped IO

Compiler Optimization (Example)

static int val;

void func1() {
val = 0;

while (val != 0xff) // optimize as while(1)
;
}

void func2() {
val = 0;

while (*(volatile int *) &val != 0xff) // no optimization applied
;
}



No comments:

Post a Comment