Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 2 của 2 Đầu tiênĐầu tiên 12
Kết quả 11 đến 20 của 20
  1. #11
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    theo mình nghĩ
    void main() hàm không trả về giá trị nào cả,còn int main() phải trả về một giá trị cụ thể,tuy nhiên trong trường hợp bạn không muốn trả về giá trị nào thi trong int main() bạn cần return 0, tức là trả về giá trị 0.
    ví du: trong hàm con int min() bạn dùng lệnh return 5; thì trong hàm main() nếu bạn dùng lệnh cout<<min() máy sẽ int ra giá trị 5;
    còn return 0 máy sẽ in giá trị là 0;
    đối với hàm main() bạn dùng void main() hay int main() đều được cả nhưng dùng int main() phải trả về 1 giá trị nên bạn phải return 0.............
    đối với trình dich dep-C++ luôn yêu cầu hàm main là int main(); nếu dùng void main() sẽ có báo lỗi.
    đây là do qui ước của nhà chế tạo phần mềm Dep-C++ qui định.
    nếu có gì sai mong bạn chỉ giáo.hi22
    chúc bạn thành công.

  2. #12
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Không sai cả. Vẫn chưa nói đúng mục đích của việc trả về giá trị của hàm main().
    Lý do thì Tadius đã trình bày ở trên. Các bạn nào lập trình với tập tin bat chắc sẽ hiểu rõ.

  3. #13
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hdkh89
    đào mộ tí nhé các bạn ! mình mới theo C++ được 1 ngày . hôm nay là ngày thứ 2 . Mình dùng VC++ 2012
    mình để thế này thì chạy bình thường . Nhưng để như ví dụ trên kai thì nó báo lỗi
    Mã:
    #include <iostream>
    #include <conio.h>
    int main()
    {
    std::cout <<"Toi ghet C++";
         _getch();
         return 0;    //Bỏ return đi thì vẫn chạy bình thường
    }
    Thônng báo lỗi gì vậy bạn?? Bên Dev C vẫn chạy bình thường.

  4. #14
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    đào mộ tí nhé các bạn ! mình mới theo C++ được 1 ngày . hôm nay là ngày thứ 2 . Mình dùng VC++ 2012
    mình để thế này thì chạy bình thường . Nhưng để như ví dụ trên kai thì nó báo lỗi
    Mã:
    #include <iostream>
    #include <conio.h>
    int main()
    {
    std::cout <<"Toi ghet C++";
         _getch();
         return 0;    //Bỏ return đi thì vẫn chạy bình thường
    }

  5. #15
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Tadius
    void main() mặc định sẽ trả về giá trị 0 cho biến môi trường ERROR_LEVEL khi chương trình của bạn kết thúc.

    Mục định trả về ERROR_LEVEL là cho biết trạng thái kết thúc của chương trình của bạn, để sử dụng cho các tập tin BATCH (*.BAT) và COMMAND (*.CMD)...
    và trong một số shell khác của Linux.

    Còn int main() thì sẽ trả lại mã ERROR_LEVEL bằng statement return "Mã Trả Về"; cái này do người lập trình quy định, tuy nhiên hầu hết các chương trình trả về mã 0 nghĩa là chương trình kết thúc bình thường, không gặp lỗi, với giá trị trả về khác 0 thì chương trình gặp lỗi (do lập trình viên quy định)
    Cách trả lời của Tadius là đúng rồi. Tuy nhiên cần chỉnh sửa 1 chút.

    1. Biến môi trường %ERRORLEVEL%.
    2. void main() không trả về 0 cho biến môi trường, mà giá trị thanh ghi ax (học ngôn ngữ assembly) sẽ thiết đặt cho biến môi trường. Vì vậy trong hàm main(), các thao tác cuối cùng ảnh hưởng đến thanh ghi ax, vì thế sẽ có giá trị bất kỳ tùy theo mã chương trình.

  6. #16
    Ngày tham gia
    Dec 2015
    Bài viết
    0
    Theo như mình hiểu, C và C++ chỉ có 2 kiểu hàm main:


    Mã:
    int main(void);         // hoặc int main() cho C++int main(int, char **); // cả C và C++
    Chương trình vẫn có thể chạy nếu hàm main() được viết khác đi, nhưng cũng có thể không chạy theo như mong muốn nếu nó được dịch bằng trình biên dịch khác.

  7. #17
    Trích dẫn Gửi bởi cvht
    Theo như mình hiểu, C và C++ chỉ có 2 kiểu hàm main:


    Mã:
    int main(void);         // hoặc int main() cho C++int main(int, char **); // cả C và C++
    Chương trình vẫn có thể chạy nếu hàm main() được viết khác đi, nhưng cũng có thể không chạy theo như mong muốn nếu nó được dịch bằng trình biên dịch khác.
    Đọc hiểu bài này thì bạn sẽ biết tại sao có main hay int main, chưa kịp nghiên cứu mới đánh dấu thôi, bạn thử tìm hiểu xem http://diendan.congdongcviet.com/showthread.php?t=26872

  8. #18
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kimcy1992
    Đọc hiểu bài này thì bạn sẽ biết tại sao có main hay int main, chưa kịp nghiên cứu mới đánh dấu thôi, bạn thử tìm hiểu xem http://diendan.congdongcviet.com/showthread.php?t=26872
    [What] main and int main?

    I'd more than willing to hear your well-researched thought about it.

  9. #19
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi cuong89hvktqs
    theo mình nghĩ
    void main() hàm không trả về giá trị nào cả,còn int main() phải trả về một giá trị cụ thể,tuy nhiên trong trường hợp bạn không muốn trả về giá trị nào thi trong int main() bạn cần return 0, tức là trả về giá trị 0.
    ví du: trong hàm con int min() bạn dùng lệnh return 5; thì trong hàm main() nếu bạn dùng lệnh cout<<min() máy sẽ int ra giá trị 5;
    còn return 0 máy sẽ in giá trị là 0;
    đối với hàm main() bạn dùng void main() hay int main() đều được cả nhưng dùng int main() phải trả về 1 giá trị nên bạn phải return 0.............
    đối với trình dich dep-C++ luôn yêu cầu hàm main là int main(); nếu dùng void main() sẽ có báo lỗi.
    đây là do qui ước của nhà chế tạo phần mềm Dep-C++ qui định.
    nếu có gì sai mong bạn chỉ giáo.hi22
    chúc bạn thành công.
    Đúng vấn đề em đang cần cảm ơn Bác ! Em mới dùng thằng DEP nên không rành lắm mong các bác chỉ bảo.

  10. #20
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ^ Thực ra Dev-C làm đúng chuẩn chứ ko phải là tự chế ra đâu.

    Nếu bạn viết command-line prog thì rất có thể trình của bạn đc gọi từ batch script và nó sẽ cần cái trị return đấy phải chính xác [IMG]images/smilies/biggrin.png[/IMG]

 

 
Trang 2 của 2 Đầu tiênĐầu tiên 12

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •