在一个项目中,使用C语言,首先在一个 A文件中定义了一些全局变量,并赋初值,并在 B文件里引用,并在一个函数中重新赋值。在main函数的起始处中调用该赋值函数,发现并没有被重新赋值。
一般情况下,在中断中使用的全局变量必须要 volatile 修饰,或者一些 IO 口变量必须要 volatile 修饰,但此次发现,即使非中断的情况下,全局变量最好也要用 volatile 修饰,不然就会出现预想不到的错误,这类错误还很难调试,很难排查。
本文通过一个实例探讨了在C语言编程中使用volatile关键字修饰全局变量的重要性。即便在非中断环境中,若未正确使用volatile,也可能导致预期外的行为,增加调试难度。
在一个项目中,使用C语言,首先在一个 A文件中定义了一些全局变量,并赋初值,并在 B文件里引用,并在一个函数中重新赋值。在main函数的起始处中调用该赋值函数,发现并没有被重新赋值。
一般情况下,在中断中使用的全局变量必须要 volatile 修饰,或者一些 IO 口变量必须要 volatile 修饰,但此次发现,即使非中断的情况下,全局变量最好也要用 volatile 修饰,不然就会出现预想不到的错误,这类错误还很难调试,很难排查。
您可能感兴趣的与本文相关的镜像
Kotaemon
Kotaemon 是由Cinnamon 开发的开源项目,是一个RAG UI页面,主要面向DocQA的终端用户和构建自己RAG pipeline
539
2246
8018

被折叠的 条评论
为什么被折叠?