tailieunhanh - Hướng dẫn tự học và thực hành Visual Basic C++ 2008 part 2

Tham khảo tài liệu 'hướng dẫn tự học và thực hành visual basic c++ 2008 part 2', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Phần II Làm việc vời bộ tiến xù lý 53 Argument 1 null í trên là kết quả khi bạn chạy chương trình sau khỉ biên dịch với cờ -DNDEBUG cho trình biên dịch. Như bạn có thể thấy nó rất khác với trường hợp mà macro assert được bật. Chú ý rằng không có đối số được cung cấp cho chương trình do đó chúng ta thật sự bước qua bộ nhớ vào lúc này. Vì mảng pointer chứa dầy các đối số dần dến ứng dụng chúng ta giới hạn chi trong số đối sô dược chuyến vào. Nếu không có gì dược chuyến vào chương trình sẽ không có gì trong mảng đỏi số và các pointer trong mang argv sẽ trỏ vào thông tin thừa. Thật may thay chúng ta đã không cố làm bất cứ điều gì với pointer ngoại trừ in nó ra nhưng có lẽ nó có thể dễ dàng khiến cho một chương trình tự dồ vỡ. Hãy tưởng tượng nếu mã này đã được đưa vào một hệ thông sản xuât. Lần dắu tiên một build tỏi ưu hoá thường đưọ c gọi là một release đã dược tạo chương trình sẽ bị dô vờ ngay khi người dùng chạy nó mà không cho chương trình bất kỳ đối số trên dòng lệnh. Rõ ràng đây không phâi là một giai pháp tối Ưu khi bạn làm việc trong thực tế. Phần tiếp theo sẽ hướng dẫn bạn cách giải quyết vấn đề này. Xử lý vân đê Assert Các macro Assert có giá trị - đặc biệt khi bạn theo dõi những vân đề đặc biệt gây phiền phức. Bằng cách làm cho mã chứa đầy các assert bạn có thê theo dõi những điều kiện mà bạn đã không mong dựi. Tuy nhiên những assert đó sẽ không cho bạn đơn giản bô qua những diều kiện phiền phức mù bạn tìm thây. Để giải quyết vấn đề này phần liên quan của Listing sẽ được viết lại. Bước sau đây hướng dan bạn cách thực hiện. 1. Chính sửa mã nguồn cho ứng dụng thử nghiệm như trong Listing . Trong trường hợp này file mã nguồn gốc được gọi là . Listing Giải quyết vấn đề Asserts include include hit main int argc char argv I assert argc 1 if argc 1 printf Argument 1 s n argv 1 54 Phần It Lam việc vớí bộ tiền xử lý f return 0 Sự khác biệt ở đây là gì Rõ ràng nếu bạn biên dịch chương trình trong chế độ debug nghĩa là không

TỪ KHÓA LIÊN QUAN