C/Предупреждения компилятора C++: Вы очищаете весь свой код, чтобы удалить их или оставить их внутри?

в меню iOS Simulator, перейдите в Debug -> Location -> Custom Location. Там вы можете установить широту и долготу и проверить приложение соответственно. Это работает с mapkit, а также с CLLocationManager.

63
задан rlerallut 8 October 2008 в 21:34
поделиться

18 ответов

Я очистил бы любое предупреждение. Даже те, что Вы знаете, безопасны (если такая вещь будет существовать), то произведет плохое впечатление Вас тому, кто бы ни скомпилирует код.

Это один из "вонючих" знаков я искал бы, если бы я должен был работать над кем-то еще код.

, Если бы не реальные ошибки или потенциальные будущие проблемы, это был бы знак небрежности

89
ответ дан Remo.D 7 November 2019 в 12:22
поделиться

Мой босс, который создал некоторый код я теперь, поддерживает. Он использует флаги компилятора для сокрытия его предупреждений депрекации.

, Когда у меня есть время, я прохожу и очищаю то, что я могу.

0
ответ дан J.J. 7 November 2019 в 12:22
поделиться

Я пытаюсь скомпилировать код с довольно высоким уровнем предупреждений и убрать их всех, за исключением "со знаком / неподписанное сравнение" предупреждения, которые я уверен, что должен зафиксировать, но никогда не могу беспокоиться.

Короткая версия: В g ++ я использую "-Wextra-Wno-sign-compare" и избавляюсь от всех сообщений.

0
ответ дан Chris Jefferson 7 November 2019 в 12:22
поделиться

Всегда очищайте все предупреждения или явно подавляйте их в случае необходимости. Настройки по умолчанию для предупреждений должны быть максимально возможными при компиляции (уровень 4 на VS, например).

0
ответ дан Dan Cristoloveanu 7 November 2019 в 12:22
поделиться

Мне не нравятся предупреждения. Я удаляю их как можно больше.
Иногда, когда под давлением для окончания задания я оставляю некоторых из них. Я редко оставляю их все же. Я чувствую себя подобно Вам, грязный, если существует кто-либо оставленный.

0
ответ дан Burkhard 7 November 2019 в 12:22
поделиться

Кодовая база я продолжаю работать, имеет более чем 4 000 предупреждений. Некоторые из них являются законными проблемами. Нам никогда не дают время, чтобы войти и зафиксировать их, ни осуществить рефакторинг другие поврежденные вещи... Частично, это вызвано тем, что код так стар, он предшествует стандартизированному C++. Мы можем только скомпилировать в VC ++ 6.

0
ответ дан rmeador 7 November 2019 в 12:22
поделиться

Предупреждения и должны рассматриваться как ошибки. Если Вы не можете кодировать достаточно хорошо для избавлений от предупреждений тогда, Вы, вероятно, не должны кодировать. В моей группе мы приняли решение вызвать все предупреждения ошибкам. Это заканчивает это обсуждение в целом и действительно, по моему скромному мнению, улучшает качество кода.

1
ответ дан JaredPar 7 November 2019 в 12:22
поделиться

Я работал со многими встроенными системами, где предупреждения приведут к нестабильности, катастрофическому отказу или повреждению памяти. Если Вы не знаете, что предупреждение безвредно, с ним нужно иметь дело.

2
ответ дан Ray 7 November 2019 в 12:22
поделиться

Одна из характеристик действительно хорошего программиста - то, что плохой код дает им тошнотворный живот.

я стремлюсь иметь весь свой код не только чистый компилятор, но также и быть чистым в моем наборе IDE к довольно придирчивому уровню. Я должен буду иногда подавлять экземпляр предупреждения, если я буду знать лучше, чем инструмент, но по крайней мере который также служит документацией.

4
ответ дан Darron 7 November 2019 в 12:22
поделиться

Худшая часть - то, что, когда Вы пишете новый код, его твердое, чтобы знать, если Вы случайно представили больше предупреждений, с тех пор существуют так многие, Вы просто игнорируете их так или иначе.

проблема с очисткой их всех, то, что это занимает время, что Вы можете или не можете иметь. Но да, обычно необходимо очистить столько, сколько Вы можете.

6
ответ дан Greg Rogers 7 November 2019 в 12:22
поделиться

Отъезд предупреждений в Вашем коде, потому что у Вас нет времени для фиксации их, похож на то, чтобы не чистить зубы, потому что у Вас нет достаточного количества времени утром. Это - основной вопрос гигиены кода.

6
ответ дан JesperE 7 November 2019 в 12:22
поделиться

Существуют некоторые экземпляры, где я оставлю предупреждения в коде, или где невозможно очистить их (хотя я действительно удаляю тех, я могу). Например:

  • , Если у Вас есть что-то, которое Вы продолжаете работать, и Вы знаете, что требуется больше работы/внимания, оставляя предупреждение на месте, чтобы указать, что это может быть соответствующее
  • при компиляции C++ со сбросом / существует несколько предупреждений о вещах, которые заставляют собственный код быть сгенерированным; это может быть громоздким для подавления всех этих предупреждений, когда кодовая база не может быть функционально изменена
  • Моющиеся предупреждения, когда Вы не понимаете то, что делает фиксация. Я сделал это пару раз с предупреждением Линта ПК и закончил тем, что представил ошибки. Если Вы не знаете то, что точный эффект изменения (например: броски C-стиля для устранения предупреждений) НЕ делайте этого. Выясните предупреждение или оставьте код в покое, мой совет.

Так или иначе, те - экземпляры первое, что пришло на ум, где отъезд предупреждений мог бы быть соответствующим.

9
ответ дан Josh Lee 7 November 2019 в 12:22
поделиться

Я соглашаюсь, лучше устранять все предупреждения. Если Вы получаете тысячи предупреждений, необходимо расположить по приоритетам меры.

Запускаются установить Ваш компилятор на самый низкий уровень предупреждения. Эти предупреждения должны быть самыми важными. Когда те фиксируются, увеличивают Ваше предупреждение уровня и повторения, пока Вы не достигаете самого высокого уровня предупреждения. Тогда установите свои опции компиляции, таким образом, что предупреждения рассматривают как ошибки.

, Если Вы находите предупреждение, что Вы подозреваете, безопасно проигнорировать, провести некоторое исследование для проверки теории. Только тогда отключите его и только самым минимальным возможным способом. Большинство компиляторов имеет #pragma директивы, которые могут отключить/разрешить предупреждения для просто части файла. Вот пример Visual C++:

typedef struct _X * X; // from external header, not 64-bit portable

#pragma warning( push )
#pragma warning( disable: 4312 ) // 64-bit portability warning
X x = reinterpret_cast< X >( 0xDDDDDDDD ); // we know X not 64-bit portable
#pragma warning( pop )

Примечание, что это только отключает предупреждение для одной строки кода. Используя этот метод также позволяет Вам делать простой текстовый поиск своего кода в будущем для внесения изменений.

, Кроме того, можно обычно отключать конкретное предупреждение для единственного файла или для всех файлов. По моему скромному мнению, это опасно и должно только быть последним средством.

20
ответ дан jwfearn 7 November 2019 в 12:22
поделиться

На моей работе включен параметр компилятора для обработки предупреждений как ошибок. Так, никакие предупреждения, или это не скомпилирует:)

38
ответ дан Nemanja Trifunovic 7 November 2019 в 12:22
поделиться

Всегда очищайте свои предупреждения. Если у Вас есть конкретный случай, где Вы знаете, что предупреждение в порядке, то подавите его для того экземпляра только.

, В то время как некоторые предупреждения могут быть мягкими, большинство показывает настоящую проблему с кодом.

, Если Вы не очищаете все свои предупреждения тогда, список предупреждения продолжит расти, и дела настоящей проблемы будут проиграны в море предупреждения шума.

5
ответ дан 17 of 26 7 November 2019 в 12:22
поделиться

Очистите их, даже если они не указывают на настоящую проблему. Иначе, если предупреждение, которое делает , укажет, что настоящая проблема обнаруживается, Вы не будете видеть его через весь шум.

45
ответ дан Graeme Perrow 7 November 2019 в 12:22
поделиться

Уберите их если возможный . На многоплатформенной кодовой базе / кодовой базе мультикомпилятора (я работал над тем, который скомпилировал на 7 различных OSs с 6 различными компиляторами) это не всегда возможно все же. Я видел случаи, где компилятор всего неправильный (HP-UX aCC на Itanium, я смотрю на Вас), но это по общему признанию редко. Как другие отмечают, можно отключить предупреждение в такой ситуации.

Много раз то, что является предупреждением в этой версии компилятора, может стать ошибкой в следующей версии (любой обновляющий от gcc 3.x к 4.x должен быть знаком с этим), поэтому очистите его теперь.

Некоторые компиляторы испустят действительно полезные предупреждения, которые станут проблемами при определенных обстоятельствах - Visual C++, 2005 и 2008 могут предупредить Вас о 64-разрядных проблемах, который является ОГРОМНЫМ преимуществом в наше время. Если у Вас будут какие-либо планы мигрировать на 64-разрядный, то просто очищать те виды предупреждений существенно уменьшит Ваше время порта.

14
ответ дан Zathrus 7 November 2019 в 12:22
поделиться

Я всегда включаю все предупреждения, и затем устанавливаю мой проект прекратить создавать, если существуют какие-либо предупреждения.

, Если существуют предупреждения, то необходимо проверить каждого, чтобы гарантировать, что нет никакой проблемы. Выполнение этого много раз является пустой тратой времени. Не выполнение, которое это подразумевает, приведет к ошибкам, вползающим в Ваш код.

существуют способы удалить предупреждение (например, #pragma argsused).

Позволяют компилятору сделать работу.

3
ответ дан selwyn 7 November 2019 в 12:22
поделиться