|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.09.2017, 14:54 | #1 |
Пользователь
Регистрация: 10.04.2017
Сообщений: 66
|
Почему компиляторы разные.
Здравствуйте. Достаточно странный вопрос, но все же. Я работал с GCC, Dev-C++ и Visual Studio. Не сказать что много работаю со студией, но dev меня поразил немного. В основном пишу под linux и компилятор GCC хорошенько выскажется если я ему скормлю такой код:
Код:
|
28.09.2017, 15:16 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Dev-C++ это не компилятор. Это IDE, по умолчанию использует компилятор MinGW (порт GCC для винды).
Может не указан флаг для повышения количества варнингов или старая версия. Вы смотрели его? Там написано, что компилятор должен выдавать варнинг в этой ситуации?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
28.09.2017, 15:34 | #3 |
Пользователь
Регистрация: 10.04.2017
Сообщений: 66
|
Суть не в том, видел ли я стандарт или нет. Суть в том что стандарт есть, а компиляторы делают одно действие по разному.
|
28.09.2017, 15:46 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
И что? Стандарт не все описывает. Если чего-то нет в стандарте, то никто не мешает разработчикам компилятора это добавить у себя, просто не стоит надеяться, что оно будет во всех компиляторах. (но со временем может понравится и другим и в итоге попадет и в стандарт)
Ну и еще стандарт большой и не все фичи легко реализовать, вроде бы ни один компилятор не поддерживает его на 100%.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
28.09.2017, 15:48 | #5 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
Это не противоречит стандарту. Это просто сравнение двух указателей. Да, разработчики стараются уменьшить выстрелов в ногу и придумывают всякие дополнения, типа доп. варнинг на такое или функции с _s на конце, или...
Так как таких вещей нет в стандарте, то реализовывать/не реализовывать, включать сразу/не включать и т.п. зависит от компилятора и его настроек/флагов вызова. |
28.09.2017, 16:54 | #6 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Дак получается в одной системе компилятор подумает и сделает так, а в другой эдак?
Ведь читаешь книгу и там написано, что в такой то ситуации компилятор воспримет бла-бла-бла так, а если сделать так то бла-бла-бла этак. А они еще и разные!! |
28.09.2017, 17:13 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
Есть стандарт. Если компилятор заявляет, что его поддерживает, то должно выполняться что написано.
Все остальные украшательства и добавления - к авторами компилятора и документации на него. Или по другому: есть книжка - стандарт, а есть его пересказ - реализация в компиляторе. |
28.09.2017, 17:22 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Все основное стандартное обычно одинаково во всех современных компиляторах.
Наличие поддержки новых фич стоит проверять в его документации или http://en.cppreference.com/w/cpp/compiler_support Ну и всякие нестандартные расширения или напрямую API ОС избегать если волнует это.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
28.09.2017, 20:33 | #9 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
28.09.2017, 23:46 | #10 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему разные значения вычисленной площади? | msv131255 | Помощь студентам | 4 | 12.01.2017 20:23 |
Язык Си. Простой код, но не пойму почему выводятся разные матрицы. | Ar2emiS | Помощь студентам | 4 | 17.11.2016 14:09 |
Разные компиляторы-разный результат! | daria_dsm | Общие вопросы C/C++ | 3 | 08.05.2014 22:49 |
в чем отличие gpu core clock и gpu clock почему значания разные? | gpu0 | Компьютерное железо | 0 | 10.06.2012 05:17 |
Разные компиляторы - разные результаты | Кипящий чайник | Общие вопросы C/C++ | 3 | 16.07.2010 14:54 |