=== test.c === static volatile char *vp; int main(int argc, char *argv[]) { struct {char *p;} st; /* lock */ st.p = vp; /* unlock */ return 0; } ====== Присвоение st.p = vp; не должно быть оптимизировано компилятором (hint volatile должен действовать). > gcc test.c test.c: In function `main': test.c:9: warning: assignment discards qualifiers from pointer target type Поменять структуру st не могу (сделать volatile char *p;). Привёл к типу: st.p = (char *) vp; > gcc -Wcast-qual test.c test.c: In function `main': test.c:9: warning: cast discards qualifiers from pointer target type Как избежать warning'ов? Заранее спасибо.