Russian Qt Forum
Ноябрь 22, 2024, 23:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Порядок вычислений  (Прочитано 2532 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Декабрь 20, 2014, 08:26 »

Псевдокод
Код
C++ (Qt)
if (offs1 > 0) dst1[index++] = src1[index] + offs1;
if (offs2 > 0) dst2[index++] = src2[index] + offs2;
Наивно полагал что сначала вычисляется правая часть, потом левая. Работало в 32-bit но вылетело в 64. Пришлось разориться на скобки
Код
C++ (Qt)
if (offs1 > 0) {
dst1[index] = src1[index] + offs1;
++index;
}
Записан
Bepec
Гость
« Ответ #1 : Декабрь 20, 2014, 08:42 »

Надо ввести новый раздел - теоритические утверждения специально для тем Igors Улыбающийся

Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #2 : Январь 21, 2015, 08:29 »

Код:
dst1[index++] = src1[index] + offs1;

c++03 UB

c++11 нужно уточнять в стандарте. Там какие то уточнения насчет точек следования.

Популярное чтиво:
http://alenacpp.blogspot.co.il/2005/11/sequence-points.html
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 22.