我有一个函数,其原型如下:
void foo(const char * data);
Run Code Online (Sandbox Code Playgroud)
在我的代码的其他地方,我有一个声明如下的全局变量
volatile char var[100];
Run Code Online (Sandbox Code Playgroud)
每当我尝试这样做:
foo(var);
Run Code Online (Sandbox Code Playgroud)
编译器抛出以下错误消息:
"volatile char*"类型的参数与"const char*"类型的参数不兼容
为什么会这样?据我了解,我的函数中的变量不允许更改指针或其内容.我理解,因为我的全局变量是易变的,它可能随时发生变化,但是看到拥有一个易变的const变量是完全合法的,我不明白为什么我得到这个编译错误.
谢谢
--Amr