volatile - это очень сильный модификатор в С++
Как-то по многим блогам эта тема недавно пробегала, но надо отдать должное, вопрос почему эта программа, будучи откомпилированной в Студии, печатает “1” вместо “0”, озадачивает даже опытных программистов на С++ (или по крайней мере они дают неправильное объяснение причины происходящего).
#include <iostream>
volatile const char* p = "0";
int main() {
std::cout << p << std::endl;
return 0;
}
Для получение схожего эффекта в GCC надо заменить “0” на “false”.
Оригинальный пост | Disclaimer