以下のようにメモリ バリアが定義されている従来の C++ コードを読んでいます。主な OS は linux と vxworks です。コンパイラは gcc (WindRiver の gcc) です。
#if((KCompilerGNU)||(kCompilerWindRiver))
#define MEMORY_BARRIER __asm__ volatile("nop\n");
#else
#define MEMORY_BARRIER __asm nop;
#endif
しかし、ノーオペレーション操作がどのように機能してメモリバリアを生成するのかわかりませんか? または、それは単なる障害の実装ですか?