Сегодня я узнал о существовании функции atexit. Читая мануалы б ней, не могу понять, насколько практически необходимо использовать эту функцию, если можно завершить программу банальным закрытием по крестику окна или завершению кода (если консоль)?
**
@gil9red я видел этот пример по ссылке. Но до последнего не понимал, в каком случае можно применить эту функцию.
Изучив примеры использованию по ссылкам на гитхабе, я пришёл к понимаю (как я сам ощущаю) способа применения atexit.
Получается, что эта функция вызывается в любом случае, когда приложение завершается. То есть, реально можно реализовать сериализацию чего-либо, не прибегая к лишнему вызову из main() (ведь иногда можно попросту забыть сделать это :) ).
Небольшой пример:
#include <iostream>
#include <string>
using namespace std;
void CloseProj()
{
cout << "Выполнение закончено. Программа закрыта\n";
}
void EnterName()
{
char name[20];
int age;
cout << "Пожалуйста, введите своё имя и возраст:\n"
<< "Имя: ";
cin >> name;
cout << "Введите свой возраст: \n"
<< "Возраст: ";
cin >> age;
cout << "Привёт, " << name << ". Тебе " << age << " лет!\n";
}
int main()
{
atexit(CloseProj);
EnterName();
}