Пустота в главной и сохранении программы DOS от умирающих [дубликат

StackOverflow https://stackoverflow.com/questions/3009824

  •  26-09-2019
  •  | 
  •  

Вопрос

Возможный дубликат:
Разница между Void Main и Int Main Main?

Хорошо, так что я использую кровопролитие по-прежнему, первым, что мне следует отметить, что я использую Edition 2001 года C ++ для абсолютного новичка, были ли какие-либо изменения в C ++ с 2001 года, которые будут влиять на обоснованность этой книги? Я спрашиваю, потому что я знаю PHP имеет php5 и теперь php6, но я не видел C ++ 03.

Теперь по причине я спросил, что в этом коде он использует,

void main (void)

Почему я хочу, чтобы аргумент был недействительным? Что это делает.

Но когда я бегу void main (void) В моем компиляторе он говорит, что главное должно иметь «int» до этого. Так что я не могу иметь «пустота» главной (пустоты);

Кроме того, как только код пройдет, до тех пор, пока нет «CIN», программа закрывается. Это нормальное поведение, есть ли лучший способ остановить это, кроме того, чтобы сделать CIN в конце моей программы?

Это было полезно?

Решение

Что произошло с 2001 года, являются изменениями на C ++ компиляторы, который в целом гораздо убирал о том, как стандарты - соответствующий стандарту, что ваш C ++ должен быть, прежде чем они примут его. Например, GCC отправился от 2,95 или около того до 4.4.2. Ранее компиляторы могут позволить вам скользить с помощью этой формы основного, поскольку они будут несколько старых C-ISM, которые не являются правильными C ++, но это не язык, который изменяется в этом случае (по крайней мере, насколько стандартной идет).

Сказав это: Да, C ++ изменился и меняется, хотя и не совсем на официальном уровне стандартов. Различные компиляторы поддерживают эти изменения в разные степени. Я не думаю, что вы, вероятно, будете им повлиять на них, но вы можете знать их в любом случае. Видеть:

Что касается того, как заканчивать свою программу. Я рекомендую простую «возврату 0»; в точке main Где вы хотите выйти или использовать код выхода, отличный от 0, если вы хотите выйти с ошибкой. Вы можете опустить возвращение, хотя и многие примеры делают это, хотя лично я лично думаю, что это плохой стиль.

Я понимаю, что вы используете cin Чтобы приостановить заявку, прежде чем он выйдет. Это не требуется для приложений C ++ в целом, это просто удобство для работы приложения. Это нормально для примеров, но вы определенно хотите избежать этого для реального применения.

Другие советы

Сжечь эту книгу. Не только это void main не соответствовать Любые Стандарт C ++ (современный или старый), но объявление функции меньшее значение параметра (void) вместо () это C идиома, который обескуражен в C ++. Из этого образца я вздрогнул, чтобы подумать, какие другие ужасы могут содержать книгу.

Проблема с закрытием окна консоли полностью не связана с содержимым вашей программы. Windows имеет поведение, где, если вы запустите консольную программу напрямую, она автоматически закроет окно консоли, когда программа заканчивается. Чтобы избежать этого, откройте консольное окно и запустите свою программу в нее. Консольное окно останется открытым, пока вы хотите. (А также пожалуйста Воздержитесь от использования к сожалению популярной практики добавления дополнительного вызова фиктивного ввода или «пауза» в конце вашей программы, чтобы открыть окно. Вы не должны добавлять код в свою программу, чтобы компенсировать определенный способ, которым вы произошли запускать его; Просто запустите его правильно и оставьте свой плохой код в одиночку.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top