2013-04-06 52 views
7

Tôi có một số mã cũ cho hệ thống nhắn tin được triển khai với khối lớn if/else if/else if ... block. Khi tôi muốn thêm một khối else mới Visual Studio 2010 có "lỗi trình biên dịch nội bộ".Số câu lệnh tối đa khác trong C++

Bạn có biết nếu được xác định bằng tiêu chuẩn C++ hoặc thực hiện số lượng tối đa được xác định là else câu? Nếu được thực hiện xác định nơi tôi có thể tìm thấy số lượng tối đa cho Visual Studio 2010?

Vì lý do lịch sử tôi không thể thay đổi mã, ngay cả khi việc triển khai thực hiện ... không phải là rất khôn ngoan.

+4

Có vẻ như bạn đã tìm thấy. Tôi rất nghi ngờ nó được xác định, họ chỉ giả định không ai sẽ đạt đến giới hạn đó (giả sử một giới hạn như vậy tồn tại) trong một chương trình thực sự. –

+0

Bạn có thể thử biên dịch nó trong một trình biên dịch khác không? –

+0

Chỉ Visual Studio 2010 cho PC và Xbox – Felics

Trả lời

12

Tiêu chuẩn C++ không yêu cầu tối thiểu. Nó có tối thiểu được đề nghị, nhưng không được yêu cầu.

Mức lồng nhau của câu lệnh ghép, cấu trúc điều khiển lặp và cấu trúc điều khiển lựa chọn [256].

Khi vượt quá giới hạn triển khai, hành vi không xác định.

+1

Bạn không có nghĩa là 'tối đa'? :) –

+3

@MihaiTodor Không, anh ta có nghĩa là tối thiểu. Đó là câu hỏi * thực * đang được hỏi ở đây liệu OP có biết hay không. Có một số chiều sâu tối thiểu được xác định tiêu chuẩn cần thiết để được đáp ứng bằng cách triển khai cho phù hợp với tiêu chuẩn không? Johannes đọc ngay qua câu hỏi hơi lạc hậu được hỏi, và giải quyết vấn đề * thực *. (và +1 cho câu trả lời). – WhozCraig

+2

Đây là giới hạn trên tối thiểu (minimax?). Trình biên dịch có nghĩa vụ phải cho phép ít nhất 256 cấp độ (do đó giá trị chấp nhận được tối thiểu cho số lượng tối đa các cấp là 256). –

1

Dưới đây là các giới hạn trình biên dịch Visual Studio C++ (do Google cung cấp).

MSVC compiler limits

Các vấn đề liên quan