How to eliminate the “discard qualifier” warning?
问题 Using GCC and C99 mode, I have a function declared as: void func(float *X); When I call the function, I use a volatile array Y: volatile float Y[2]; int main() { func(Y); return 0; } When compiling (with -Wall ), I get the following warning: warning: passing argument 1 of ‘func’ discards qualifiers from pointer target type blah.c:4: note: expected ‘float *’ but argument is of type ‘volatile float *’ I can eliminate it with an explicit (float *) type cast, but this repeats in many places in