[оптимизатор в VS 2003]Запись указателя в память (см. код в сообщении)

Andbar

		while( 
( *(++FindInfo->FindPtr) == '\n' ) ||
( *(FindInfo->FindPtr) == '\r' ) );

будут ли на протяжении цикла записываться в память значения указателя FindInfo->FindPtr или они будут держаться в регистрах до конца цикла и только потом записываться?

vall

всё должно быть нормально.
но код кривой, лучше как for написать - намного понятнее будет как он должен работать.
хотя наверняка это лучше переписать используюя стандартные функции из string.h

Andbar

там должно пройти 2-3 итерации, ради них вызывать функцию не хочется, да и подходящей _одной_ функции я не помню.
На счет не понятности - вот кусок кода, новая версия этого места + предыдущий цикл:
		do
{
l++;
end++;
}
while(
( *end != '\r' ) &&
( *end != '\0' ) &&
( *end != '\n' ) );
while(
( *end == '\n' ) ||
( *end == '\r' ) ) end++;
Теперь, если не отвлекаться на красиво вставшие друг под другом скобочки (а то можно не заметить, что перед первым while'ом do{...} стоит всё понятно.
Оставить комментарий
Имя или ник:
Комментарий: