Я получаю предупреждение для этой линии:Является ли флаг gcc -Wsequence-point предупреждением?
e = strtol(++s, (char **)&s, 10);
Перемещение ++s
в отдельное заявление делает предупреждение уйти, но, насколько я могу судить, это предупреждение совершенно неправильно. Значение из s
используется только один раз, при вычислении ++s
. Второе использование s
только для его адреса. Есть что-то, что мне не хватает?
Я не могу воспроизвести проблему, используя gcc 4.4.3 или 4.4.5. Опубликовать полный example.c, который демонстрирует это? – Kamal
Ах, похоже, что это более старая 3.x gcc на этой системе. –
Кстати, опубликуйте это как ответ, и я соглашусь с ним, поскольку «текущий gcc не генерирует это предупреждение» является хорошим ответом на мой вопрос о том, было ли предупреждение неправильным. –