Тема: Нюанси С++
1 питання: Include <iostream> - використовується у кожній програмі?
2 питання: int main () {return 0;} чи void main () {}?
У різних джерелах по різному
Особисто я використовую int main ()
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Нюанси С++
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
1 питання: Include <iostream> - використовується у кожній програмі?
2 питання: int main () {return 0;} чи void main () {}?
У різних джерелах по різному
Особисто я використовую int main ()
1. Ні, тільки в тих, де є консольний ввід-вивід.
2. За стандартом в main не обов'язково писати return 0, але для уніформності багато хто пише.
1. Ні, тільки в тих, де є консольний ввід-вивід.
2. За стандартом в main не обов'язково писати return 0, але для уніформності багато хто пише.
Ну так наче тоді програма поверне як результат роботи те що було в регістрі еах, а повинна повертати 0 або в залежності від результату код помилки.
Щодо 1 якщо тобі потрібні функції для введеня виведення то пиши, а як ні то не потрібно.
Щодо 2 теж по ситуації. Якщо потрібно щоб програма повертала на зовні різні значення завершення роботи тоді int, а як ні то void
Є легенда що лінуксі обов'язково тре писати int main () {return 0;), це правда?
return 0 в легенді тоже обов'язковий.
Ну дивись я спочатку компілюю програму і відразу запускаю її (main.bin)
лінукс думає що там помилка через те що вона повернула 127 замість 0.
Коротше, треба писати бо буде помилка в деяких місцях.
Наприклад
➜ ./main.bin && ls -a
не спрацює бо перша команда завершилась з помилкой.
Є легенда що лінуксі обов'язково тре писати int main () {return 0;), це правда?
return 0 в легенді тоже обов'язковий.
Ну рекомендовано щоб прогавив щось повертала, але це не обов'язково. Там по замовчуваню 0 повертається, якщо нічого нема. А взагалі в лінуксі частіше юзають exit(), з ним пох на тип main. Назовні передасться число задане в параметрі
Ну рекомендовано щоб прогавив щось повертала, але це не обов'язково. Там по замовчуваню 0 повертається, якщо нічого нема. А взагалі в лінуксі частіше юзають exit(), з ним пох на тип main.
Щось таке:
#include <iostream>
int main ()
{
exit ();
}
За стандартом вихід з функції main має бути еквівалентним виклику exit - не важливо, через return чи через останню }. А результат, якщо не вказаний - має бути 0.
Якщо бути точним, то
3.6.1.5 A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling std::exit with the return value as the argument. If control reaches the end of main without encountering a return statement, the effect is that of executing
return 0;
1 якщо тобі не потрібно користуватись cin і cout (вхідним і вихідним потоком) як мінімум то ні
2 особисто я пишу void main() який сенс повертати значення з головної функції?
раз, два,три, чотири,пять, вийшов хакер погулять
return 0;
як раз важливо, вірніше, нічого страшного, компілятор сам все добавить але, писати код з return є ознакою хорошого тону програмування.
Далі, це означає що програма завершилась вдало і закриється нормально. В цей час, в регістр eax поміщається, 0 (всі ми знаєм про eax регістр і яку роль він відіграє в лінуксі, це щось регістр статусу для стекових програм, типу того), так що, return 0 правильно, return 1 ( в деяких випадках -1) це для надзвичайних ситуацій, для типу "файл не знайдено" і так дальше. Коли в регісті еах 1, тоді це означає, що помилка в завершені.
З.І. Вчіть ассемблер!
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися