Para que serve a palavra-chave volatile em C++? Explique com exemplos
Olá a todos! Sou novo em C++ e não consigo entender para que serve a palavra-chave `volatile`. Li que está relacionada à otimização do compilador, mas como exatamente funciona é um mistério.\n\nPor exemplo, tenho este código:\n\n```cpp\n#include \n\nint main() {\n int value = 42;\n while (value != 0) {\n // algum código, mas value não muda\n }\n std::cout << "Done!";\n return 0;\n}\n```\n\nSei que o compilador pode otimizar este loop e torná-lo infinito se `value` não mudar. Mas por que escrever `volatile`? Em quais situações isso é realmente necessário? Ouvi falar sobre trabalho com hardware (registradores GPIO) e multithreading, mas não entendo como `volatile` ajuda nisso. E também: qual a diferença entre `volatile` e `std::atomic`? Parece-me que fazem a mesma coisa.\n\nExpliquem
No answers yet.
Faça login para deixar uma resposta
Blogs