Здравствуйте, Cyberax, Вы писали:
>> Изображения хранятся как массивы байтов (байт = unsigned char), чтобы >> экономить память. Но беззнаковой арифметики опять нет, так как в >> выражениях unsigned char продвигается (promote) до int (а не unsigned). C>С чего бы? У меня, например, везде работа с ними ведется как с unsigned C>char'ами, и никуда они не продвигаются.
Это, строго говоря, зависит от реализации. Но подозреваю, что как раз в Вашей они продвигаются. В C это называется integer promotions, а в C++ — integral promotions.
Здравствуйте, remark, Вы писали:
R>Внимание вопрос: сколько раз выполнится цикл?
Говорила мама, используй at и профайлер. Хотя это к теме не совсем относиться;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Здравствуйте, np9mi7, Вы писали:
N>Здравствуйте, remark, Вы писали:
R>>Внимание вопрос: сколько раз выполнится цикл?
N>Говорила мама, используй at и профайлер.
Если это уже скомпилировано (без варнингов, кстати), собрано и отдано клиенту, то ему не будет легче от того, что там at() вместо [].
Здравствуйте, remark, Вы писали:
R>Если это уже скомпилировано (без варнингов, кстати), собрано и отдано клиенту, то ему не будет легче от того, что там at() вместо [].
Он хотя бы увидит что приложение выводит странное сообщение об ошибке, пишет странное сообщение в лог или вообще, при некоторых входных данных падает, а не просто неправильные данные на выходе, непонятно из — за чего;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Здравствуйте, np9mi7, Вы писали:
N>Здравствуйте, remark, Вы писали:
R>>Если это уже скомпилировано (без варнингов, кстати), собрано и отдано клиенту, то ему не будет легче от того, что там at() вместо [].
N>Он хотя бы увидит что приложение выводит странное сообщение об ошибке, пишет странное сообщение в лог или вообще, при некоторых входных данных падает, а не просто неправильные данные на выходе, непонятно из — за чего;
Я думаю, если обратится к массиву с индексом 4294967296, то приложение ничего неправильно уже не выдаст
Здравствуйте, remark, Вы писали:
R>Я думаю, если обратится к массиву с индексом 4294967296, то приложение ничего неправильно уже не выдаст
А если sizeof (int) == 8?
R>
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Здравствуйте, np9mi7, Вы писали:
N>Здравствуйте, remark, Вы писали:
R>>Я думаю, если обратится к массиву с индексом 4294967296, то приложение ничего неправильно уже не выдаст
N>А если sizeof (int) == 8?
А если sizeof (int) == 1 бит, то вообще всё будет работать, т.к. выхода за пределы массива не будет
R>>
Здравствуйте, remark, Вы писали:
R>А если sizeof (int) == 1 бит, то вообще всё будет работать, т.к. выхода за пределы массива не будет
Ладно ладно... Если ! (sizeof (int) < 8) то вполне можно работать с такими индексами
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.