volatile 修饰函数指针
时间: 2023-09-29 08:03:51 浏览: 77
当我们将 `volatile` 修饰一个函数指针时,表示该函数指针所指向的函数是易变的,即该函数可能会被其他代码修改或重写。这意味着,在编译器优化的过程中,不能假设该函数指针所指向的函数的结果不会改变,因此编译器不能将该函数的结果缓存起来,也不能将该函数的调用与其他指令重排。这就保证了程序在多线程或多进程环境下的正确性。
需要注意的是,将 `volatile` 修饰函数指针只是表示该函数指针所指向的函数是易变的,函数本身内部的变量并不会因此变得易变,如果需要将函数内部的变量也声明为易变的,需要在函数声明中添加 `volatile` 限定符。
阅读全文