-
- Указатель - это ж тупо адрес. А то что от типизирован - так на то неявное преобразование типов. Обычно работает, просто выдаёт об этом предупреждение. - POV_(31.03.2018 20:34, )
- Ты как всегда полной информации не даёшь и набрасываешь на вентилятор. Не просто адрес, оптимизатор имеет своё мнение по ряду вопросов. И в C++ ещё таблицы виртуальных функций. - fk0(31.03.2018 20:44)
- А что я знаю, что там подумал оптимизатор?! Есть факт - передаю указатель без явного приведения типа и иногда выход - лажа... POV_(103 знак., 31.03.2018 20:50, )
- Узнаешь, если листинг ассемблера смотреть научишься. Тебе как помягче объяснить, что вменяемые люди 1) реагируют на сообщения об ошибках и предупреждения компилятора и сами исправляют свои явные ошибки, 2) а если надумают попросить совета, то хотя fk0(533 знак., 31.03.2018 21:39 - 21:44, ссылка)
- У меня пример 100% соответствует действительности.... POV_(300 знак., 31.03.2018 21:50, )
- Приведение типа -- это лишь ниточка, за которую если потянуть, то можно что-то вытянуть. Но не истинная причина. Причина в коде функции, которую ты вызываешь. Но ты же код не показываешь. Зачем тогда морочить голову и вообще спрашивать? fk0(292 знак., 31.03.2018 23:24)
- Ну, не уверен что могу показывать. Я кучу бумажек подписал. - POV_(31.03.2018 23:34, )
- Перепиши руками основное, чтоб суть сохранить. Как аргумент передаётся, что с ним потом делается, статические ли функции и т.п. Идентификаторы переименуй, ненужное выкини. В таких случаях обычно подготавливают маленькую и простую демонстрационную fk0(222 знак., 31.03.2018 23:38 - 23:42)
- Вдогонку -- как вариант, для плохого кода всё собирать с -O1 (но не -O0 и не -Og, ибо размер чудовищный) и, возможно, селективно отключать ещё некоторые оптимизации (включенные по-умолчанию для -O1, опциями -fno-xxxxxx). - fk0(31.03.2018 23:44)
- -О1 такие занятные фортеля выкидывает, моё вам почтение. Ну, это, мож только у ХС32 такая фича. Но работать можно только с "0". - mse homjak(31.03.2018 23:48)
- Обычно весь софт собирают с -O2 или -Os. Выбранные модули -- с -О3 и массой других оптимизаций. Если у тебя что-то не работает -- проблема в твоём коде чаще. Ибо 99% софта и огромные проекты с -O2 работают нормально. - fk0(31.03.2018 23:53)
- -О1 такие занятные фортеля выкидывает, моё вам почтение. Ну, это, мож только у ХС32 такая фича. Но работать можно только с "0". - mse homjak(31.03.2018 23:48)
- Ну, теперь лишь в понедельник. Эффективные манагеры от меня тикет приняли.. я щас за последствия этого беспокоюсь. - POV_(31.03.2018 23:42, )
- Вдогонку -- как вариант, для плохого кода всё собирать с -O1 (но не -O0 и не -Og, ибо размер чудовищный) и, возможно, селективно отключать ещё некоторые оптимизации (включенные по-умолчанию для -O1, опциями -fno-xxxxxx). - fk0(31.03.2018 23:44)
- Перепиши руками основное, чтоб суть сохранить. Как аргумент передаётся, что с ним потом делается, статические ли функции и т.п. Идентификаторы переименуй, ненужное выкини. В таких случаях обычно подготавливают маленькую и простую демонстрационную fk0(222 знак., 31.03.2018 23:38 - 23:42)
- Ну, не уверен что могу показывать. Я кучу бумажек подписал. - POV_(31.03.2018 23:34, )
- Приведение типа -- это лишь ниточка, за которую если потянуть, то можно что-то вытянуть. Но не истинная причина. Причина в коде функции, которую ты вызываешь. Но ты же код не показываешь. Зачем тогда морочить голову и вообще спрашивать? fk0(292 знак., 31.03.2018 23:24)
- У меня пример 100% соответствует действительности.... POV_(300 знак., 31.03.2018 21:50, )
- Там ещё есть прекрасное: "undefined behaviour". Это когда компилятор взрывает твой дом и сжигает твою собаку. И всё по закону, сам виноват. - SciFi(31.03.2018 21:27)
- Блин, я просил что бы это могло значить. Просто интересно, может кто кишки GCC понимает хорошо... POV_(289 знак., 31.03.2018 21:47, )
- Приведи отуда вызывается функция с неверным приведением типа, в каком контексте, и код функции которая в конечном счёте вызывается. А писали таки криворукие, ибо нормальные програмисты ТАКИЕ варнинги не оставляют. - fk0(31.03.2018 23:25)
- Они писали под старые версии GCC... POV_(398 знак., 31.03.2018 23:38, )
- Приведи отуда вызывается функция с неверным приведением типа, в каком контексте, и код функции которая в конечном счёте вызывается. А писали таки криворукие, ибо нормальные програмисты ТАКИЕ варнинги не оставляют. - fk0(31.03.2018 23:25)
- Блин, я просил что бы это могло значить. Просто интересно, может кто кишки GCC понимает хорошо... POV_(289 знак., 31.03.2018 21:47, )
- Угу... А теперь сделай "ptr++;"... Кстате, Это ещо может быть косяк компилера. ХС32, иногда, портит параметр, передаваемый в функцию. Хотя, казалось бы... - mse homjak(31.03.2018 21:14 - 21:19)
- Узнаешь, если листинг ассемблера смотреть научишься. Тебе как помягче объяснить, что вменяемые люди 1) реагируют на сообщения об ошибках и предупреждения компилятора и сами исправляют свои явные ошибки, 2) а если надумают попросить совета, то хотя fk0(533 знак., 31.03.2018 21:39 - 21:44, ссылка)
- А что я знаю, что там подумал оптимизатор?! Есть факт - передаю указатель без явного приведения типа и иногда выход - лажа... POV_(103 знак., 31.03.2018 20:50, )
- Ты как всегда полной информации не даёшь и набрасываешь на вентилятор. Не просто адрес, оптимизатор имеет своё мнение по ряду вопросов. И в C++ ещё таблицы виртуальных функций. - fk0(31.03.2018 20:44)
- Указатель - это ж тупо адрес. А то что от типизирован - так на то неявное преобразование типов. Обычно работает, просто выдаёт об этом предупреждение. - POV_(31.03.2018 20:34, )