A BORLAND C++ esetében ez azt jelenti, hogy a a volatile jelzõ majdnem az ellentéte a const-nak. Azt jelzi, hogy a tárolási egység elvileg bármelyik pillanatban módosulhat egy, az adott programtól független folyamat (például megszakítási rutin, DMA stb.) által. A fordítóprogram a volatile jelzõ hatására az adott változót nem fogja regiszterben tárolni, és az optimalizálás során sem fogja a többszörös, vagy látszólag felesleges értékadásokat kiiktatni. A volatile módosító jelzõ használatára tekintsük a következõ példát:
volatile int ticks; void interrupt timer(void) { ticks++; } /* end timer() */ void wait(int interval) { ticks = 0; while (ticks < interval) ; } /* end wait() */A timer függvény megszakítási rutinként aktivizálódik valamely periodikus hardveresemény hatására. A wait függvény a megszakítási rutin által módosított ticks értékét ciklikusan lekérdezi. Nagyfokú optimalizálás esetén a fordítóprogram generálhat olyan kódot, amely a ciklusban a ticks értékét csak egyszer veszi tekintetbe (mert az a ciklusban explicit módon nem változik meg), ezáltal végtelen ciklust eredményezve. Ennek elkerülésére szolgál a ticks definíciójában a volatile jelzõ: a ciklus minden egyes futása alkalmával ki kell értékelni ticks tartalmát, hiszen azt egy megszakítási rutin módosítja.