Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Return Statement vs Exit() ใน main() ด้วย C++

หากคุณเป็นโปรแกรมเมอร์ คุณเขียนโค้ด หากเขียนโค้ด คุณใช้ฟังก์ชัน หากใช้ฟังก์ชัน คุณใช้คำสั่ง return และ exit ในทุกฟังก์ชัน ดังนั้นในบทความนี้ เราจะอภิบายว่า return statement และ exit statement คืออะไร และต่างกันอย่างไร

ใน C++:

  • return เป็นคำสั่งที่คืนการควบคุมกระแสการทำงานไปยังฟังก์ชันที่เรียก
  • exit() เป็นคำสั่งที่สิ้นสุดโปรแกรมทันทีที่จุดที่ใช้

int main()

นี่คือจุดเริ่มต้นของการทำงานของโปรแกรม โปรแกรมทำงานจาก main() และเนื่องจากมี int เป็น return type จึงต้องคืนค่าจำนวนเต็ม เราสามารถมองว่าจำนวนเต็มนี้แทนสถานะของโปรแกรม โดย 0 หมายถึงโปรแกรมทำงานสำเร็จ ค่าอื่นที่ไม่ใช่ 0 หมายถึงมีข้อผิดพลาดในการรัน

Return Statement ใน main()

Return statement จะคืนการควบคุมไปยังฟังก์ชันที่เรียกเสมอ Return ใช้ exit code (ค่า int) ในการคืนค่า ใช้ return ใน main หมายถึงจบโปรแกรมพร้อมสถานะ เช่น return 0 คือคืนสถานะ 0 ให้ระบบปฏิบัติการ

ตัวอย่างโค้ด (ใช้ return)

#include <iostream>
using namespace std;

class Test {
public:
    // Constructor
    Test() {
        cout << "Hey this is Return Constructor \n";
    }
    // Destructor
    ~Test() {
        cout << "Hey this is return Destructor";
    }
};

int main() {
    // สร้าง object ของ Test class
    Test object;
    // ใช้ return ใน main
    return 0;
}

ผลลัพธ์

Hey this is Return Constructor
Hey this is return Destructor

จากโปรแกรมข้างต้น เราเห็นว่า return เรียก Constructor และ Destructor ของ object เรียก Destructor สำคัญเพื่อปล่อยหน่วยความจำที่จองไว้

Exit() Statement ใน main()

Exit() จะสิ้นสุดโปรแกรมทันทีที่จุดที่ใช้ เมื่อใช้ exit ใน main จะจบโปรแกรมโดยไม่เรียก Destructor สำหรับ object ใน local scope Object ที่สร้างขึ้นจะไม่ถูกทำลายและไม่ปล่อยหน่วยความจำ แค่จบโปรแกรมทันที

ตัวอย่างโค้ด (ใช้ exit)

#include <iostream>
using namespace std;

class Test {
public:
    Test() {
        cout << "Hey this is exit Constructor \n";
    }
    ~Test() {
        cout << "Hey this is exit Destructor";
    }
};

int main() {
    Test object;
    exit(0);
}

ผลลัพธ์

Hey this is exit Constructor

จากผลลัพธ์ เราสรุปได้ว่าใช้ exit จะไม่เรียก Destructor ทำให้หน่วยความจำของ object ใน local scope ไม่ถูกปล่อย

สรุป

ในบทความนี้ เราเข้าใจความต่างระหว่าง return statement และ exit statement สรุปได้ว่าการใช้ทั้งสองมีความแตกต่างมากในโปรแกรม การใช้ exit แทน return ต้องระวัง แม้ในโค้ดสั้นจะไม่เห็นชัด แต่ในระบบใหญ่จะส่งผลมาก หวังว่าจะเป็นประโยชน์