Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

return statement vs exit() trong main() C++

return statement

Lệnh return kết thúc hàm hiện tại và trả về giá trị cho caller. Trong main(), nó kết thúc chương trình bình thường: gọi destructor của đối tượng local, flush buffer, đóng file. Trả về int cho hệ điều hành.

Cú pháp: return expression;

Ví dụ

#include <iostream>
using namespace std;

class Method {
public:
    Method() { cout << "Constructor\n"; }
    ~Method() { cout << "Destructor"; }
};

int main() {
    Method m;
    return 0;
}

Kết quả

Constructor
Destructor

exit()

Hàm exit() kết thúc chương trình ngay lập tức. Chỉ gọi constructor (nếu object tạo trước), không gọi destructor của object local trong main(). Không flush buffer đầy đủ. Khai báo trong <cstdlib>.

Cú pháp: void exit(int status);

Ví dụ

#include <iostream>
#include <cstdlib>
using namespace std;

class Method {
public:
    Method() { cout << "Constructor\n"; }
    ~Method() { cout << "Destructor"; }
};

int main() {
    Method m;
    exit(0);
}

Kết quả

Constructor

So sánh

Đặc điểmreturn 0;exit(0);
Gọi destructor localCóKhông
Flush stdio buffersCóCó (thường)
Gọi atexit handlersCóCó
Trả về mã cho OSCóCó
Khuyên dùng trong main()Có (chuẩn)Tránh (trừ lỗi nghiêm trọng)

Khuyên dùng: Luôn dùng return 0; (hoặc return EXIT_SUCCESS;) trong main(). Chỉ dùng exit() ở các hàm khác khi cần thoát khẩn cấp.