我最近接受了一家软件公司的采访,他问我以下问题:
你能告诉我在变量前添加volatile的含义是什么吗?你能解释一下为什么这很重要吗?
我的大多数编程知识都来自C,但是工作岗位是针对C#的(我想我可能会根据具体问题的需要添加这些信息)
我回答说它只是让编译器知道变量可以跨进程或线程使用,并且它不应该对该变量使用优化; 优化它可以恶化行为.简而言之,它是对编译器的警告.
然而,根据采访者的说法,反过来说,volatile关键字会警告操作系统,而不是编译器.
我对此感到有些困惑,所以我做了一些研究,实际上找到了相互矛盾的答案!一些消息来源说这是针对编译器的,还有其他针对操作系统的.
这是什么?它是否因语言而异?