Video: Ngôn Ngữ C - 19 - Cách thoát ra khỏi một vòng lặp? Dùng break 2025
Điều gì sẽ xảy ra khi bạn không phải là nguyên mẫu? Như với bất cứ điều gì trong lập trình C, khi bạn goof lên, trình biên dịch hoặc mối liên kết cho phép bạn biết với một thông báo lỗi - hoặc chương trình chỉ không chạy đúng. Nó không phải là kết thúc của thế giới - không, không giống như lập trình một robot quân sự hoặc thiết kế mã di truyền cho một loài ruồi Venus mới.
CHỨC NĂNG CƠ BẢN; KHÔNG RETURN
#include void prompt (); / * chức năng nguyên mẫu * / int main () {int loop; đầu vào char [32]; loop = 0; trong khi (vòng lặp);)
Bài tập 1 : Sửa đổi mã nguồn từ Chức năng cơ bản, Không trả lại.Xem ra nguyên mẫu từ dòng 3. Xây dựng kết quả
Các lỗi biên dịch là những điều tuyệt vời, chính xác tuyệt vời nhưng hoàn toàn bí ẩn Đây là thông báo lỗi được tạo bởi Code:: Blocks, mặc dù chỉ các phần có liên quan của tin nhắn:
13 Cảnh báo: khai báo tiềm ẩn chức năng ' Cảnh báo đầu tiên xảy ra ở dòng 13 trong tệp tin mã nguồn, nơi mà chức năng nhắc () được sử dụng bên trong thẻ chính (), trình biên dịch sẽ báo cho bạn biết rằng bạn đang sử dụng một hàm mà không có một nguyên mẫu.Đối với thông báo lỗi, bạn sẽ khai báo một hàm, đó là một lỗi không-không, nhưng không phải là lỗi đầy đủ. >
Cảnh báo thứ hai xảy ra khi mà chức năng nhắc () nằm trong chương trình. Trong mã nguồn, ở dòng 23. Chú ý rằng cảnh báo mpt () đã được khai báo (ở dòng 11) và lần sử dụng thứ hai có thể xung đột với lần đầu tiên.
Cảnh báo cuối cùng là một tham chiếu trở lại nơi chức năng đã được gọi, một lần nữa ở Dòng 13.Nói ngắn gọn: Trình biên dịch không có ý tưởng gì với chức năng prompt (). Mã của bạn biên dịch, nhưng chạy nó là nguy hiểm.
Bạn có thể rút ra kết luận rằng prototyping là một điều cần thiết tuyệt đối trong mã C của bạn. Điều đó không hoàn toàn đúng. Bạn có thể tránh prototyping bằng cách sắp xếp lại các chức năng trong mã nguồn của bạn. Miễn là một chức năng được liệt kê trước khi nó được sử dụng, bạn không cần một nguyên mẫu.
Bài tập2
: Chỉnh sửa mã nguồn của bạn từ Bài tập 10-3. Hủy bỏ các nguyên mẫu chức năng đã được bình luận ở dòng 3. Cắt và dán (di chuyển) chức năng nhắc () từ dưới cùng của mã nguồn Liệt kê vào phía trên cùng, phía trên hàm main (). Lưu, xây dựng và chạy. Tránh các mẫu thử nghiệm chức năng cho thấy các giải pháp cho bài tập 2. TRÁNH CHUYỂN FUNCTION PROTOTYPE
#include / * Hiển thị dấu nhắc * / void nhắc nhở (void) {printf ("C: DOS>");} int main () {int loop; đầu vào char [32]; loop = 0; while (loop <5) {prompt (); fgets (input, 31, stdin); Viết hàm main () đầu tiên, tiếp theo là các hàm khác cho phép dễ đọc hơn, mặc dù bạn có quyền tự đặt các hàm của riêng mình trước để tránh tạo mẫu.Và nếu bạn không, hãy nhớ rằng các lập trình viên khác có thể làm theo cách đó, do đó, không ngạc nhiên khi bạn nhìn thấy nó.
Các thông báo lỗi trình biên dịch trong Mã:: Các khối có dấu ngoặc đơn sau chúng. Các nhận xét dấu ngoặc đơn liên quan đến
switch
, hoặc tùy chọn dòng lệnh truyền thống, cho phép kiểm tra một cảnh báo cụ thể. Ví dụ, các thông báo lỗi từ bài tập 1 đã đọc đầy đủ:
11 Cảnh báo: khai báo ngầm về chức năng 'prompt' (-Westlicit-function-declaration) 20 Cảnh báo: các loại xung đột cho 'prompt' (bật theo mặc định) >