我用下面的代码得到了下面的错误。我试图找出谷歌的问题所在,但我没有找到任何有用的东西。
Compiling /home/tectu/projects/resources/chibios/ext/lcd/touchpad.c
In file included from /home/tectu/projects/resources/chibios/ext/lcd/touchpad.c:1:0:
/home/tectu/projects/resources/chibios/ext/lcd/touchpad.h:17:1: warning: useless type qualifier in empty declaration [enabled by default]下面是来自touchpad.h的第12行到第17行的代码
volatile struct cal {
float xm;
float ym;
float xn;
float yn;
};下面是我如何在touchpad.c中使用这个结构
static struct cal cal = {
1, 1, 0, 0
};有谁能给我指一下灯吗?
发布于 2012-06-11 18:29:11
你得到的不是一个错误,而是一个警告。
这适用于声明struct cal的方式:它本身不是易失性的;易失性只适用于具体的变量定义。
所以在static struct cal cal中,您的变量cal只是static,而不是volatile。
从这个意义上说,正如警告所说,volatile声明是无用的。
发布于 2012-06-11 18:28:53
volatile作为限定符可以应用于结构的特定实例。
您正在将它应用于一个无用的类型,并且编译器正确地指出了它。
发布于 2012-06-11 18:30:09
volatile限定的是变量,而不是类型。
正在做什么:
static volatile struct cal {
float xm;
float ym;
float xn;
float yn;
} cal;是合法的,也是合法的:
struct cal {
float xm;
float ym;
float xn;
float yn;
};
static volatile struct cal cal;https://stackoverflow.com/questions/10978370
复制相似问题