-
- Кстате... Тока щас дошло. Передаваемый указатель на структуру типа раз, передаётся в функцыю, как указатель на структуру типа два? Предполагаетцо, что они одной размерности и структуры(пордон за тавтологию)? - mse homjak(31.03.2018 23:17)
- а если скомпилить с -Wall -Werror? lloyd(35 знак., 31.03.2018 22:33)
- За -Werror -- сжигать нужно. - fk0(31.03.2018 23:27)
- Если я ничего не путаю, с таким флагом собираются пакеты в линупсе, мол не давать собирать даже с просто варнингами - lloyd(01.04.2018 08:58)
- Варнинги бывают разные. Они могут проявляться на машинах с разными версиями libc или компилятора или не проявляться. Что теперь, всё бросать и исправлять (попутно внося 100500 ошибок). Варнинги могут быть в чужом коде и непонятно как их исправить. fk0(418 знак., 18.04.2018 12:45)
- С такими флагами в большом проекте РАБОТАТЬ НЕВОЗМОЖНО. Там всегда масса неподавленных варнингов и заниматься ими будет неизвестно кто и неизвестно когда, некоторые варнинги вылезают только на определённых платформах или компиляторах, а на других fk0(250 знак., 01.04.2018 12:31)
- >на билдсервере нет инкрементальной сборки lloyd(166 знак., 01.04.2018 15:55)
- Если я ничего не путаю, с таким флагом собираются пакеты в линупсе, мол не давать собирать даже с просто варнингами - lloyd(01.04.2018 08:58)
- За -Werror -- сжигать нужно. - fk0(31.03.2018 23:27)
- Тащемта без явного приведения типа этот код должен вызывать ошибку компиляции. Да и код - говно, если уж честно. Так приличные люди не кодят. - SciFi(31.03.2018 11:04)
- Я, каг начинаюсчий говнокодер на Ц, подозреваю, что структурам должен быть предварительно присвоен тип, чтобы впослецтвии писать mse homjak(49 знак., 31.03.2018 14:27)
- Указатель - это ж тупо адрес. А то что от типизирован - так на то неявное преобразование типов. Обычно работает, просто выдаёт об этом предупреждение. - 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, )
- Гавно, а куда деваться. За него бабло заплочено, вот правим под себя. - POV_(31.03.2018 11:19, )
- Я, каг начинаюсчий говнокодер на Ц, подозреваю, что структурам должен быть предварительно присвоен тип, чтобы впослецтвии писать mse homjak(49 знак., 31.03.2018 14:27)