У меня есть этот код, чтобы взять строку формы bla_2
и разделить ее:
void separate(char* str, char* word, int* n) {
int i = 0;
while(str[i] != '_') {
word[i] = str[i++];
}
*n = str[++i] - '0';
}
Я получил:
warning: operation on ‘i’ may be undefined [-Wsequence-point]
Но я только меняю i
через оператора ++
, ничего не присваиваю.
Итак, зачем УБ, если он есть? Если нет, то как избавиться от предупреждения?
Обратите внимание, что, по моему мнению, этот вопрос касается другой проблемы.