关键字volatile有什么含意? 并给出三个不同的例子
共 1891字,需浏览 4分钟
·
2024-06-17 17:13
volatile unsigned int * const address = (unsigned int * const)0x12345678; // 将硬件寄存器地址赋值给指针*address = 0x1234; // 向硬件寄存器写入数据unsigned int value = *address; // 从硬件寄存器读取数据
volatile int sharedData; // 定义一个共享的变量void threadA(){while(true){// 对共享变量进行修改sharedData++;}}void threadB(){while(true){// 对共享变量进行读取printf("%d\n", sharedData);}}
volatile bool interruptFlag = false;void interruptHandler(){interruptFlag = true; // 修改 volatile 标记的变量}void mainLoop(){while(true){if(interruptFlag) // 检查 volatile 标记的变量{doInterrupt(); // 执行中断处理程序interruptFlag = false; // 清除 volatile 标记的变量}// 执行其他任务}}
评论
