Cân nhắc C++ của tôi dưới đây:biểu Visual Studio chứa một thuật ngữ có tên là "bởi" không thể được đánh giá trong cửa sổ xem
int _tmain(int argc, _TCHAR* argv[])
{
int by = 10;
printf("%d\n", by);
int bx = 20;
printf("%d\n", (by + bx));
return 0;
}
mà hoạt động tốt. Điều buồn cười là với biến "by". Nếu tôi cố gắng thêm đồng hồ cho một biểu thức đơn giản có chứa, kết quả sẽ là CXX0030: Lỗi: biểu thức không thể được đánh giá.
Ví dụ, trên một breakpoint trên return 0
, nếu tôi thêm những chiếc đồng hồ sau tôi nhận được kết quả nêu:
by : 10
bx : 20
by + 5 : CXX0030: Error: expression cannot be evaluated
bx + 5 : 25
by + bx : CXX0030: Error: expression cannot be evaluated
(by) + bx : 30
by + (bx) : CXX0030: Error: expression cannot be evaluated
bx + (by) : CXX0014: Error: missing operrand
Điều này xảy ra trên VS2010, VS2008 trên nhiều máy tính.
Vì vậy, ngoài tò mò, điều gì đang xảy ra với "bởi"? Có một số nhà điều hành kỳ lạ không? Tại sao bx không được điều trị như vậy?
(Tôi đã thử google về vấn đề này nhưng nó là khá khó khăn để có được một số hit liên quan các cụm từ như "bằng")
tập tin một báo cáo lỗi, tôi có nó ở đây quá – stijn
Ahhh, hy vọng của tôi là rằng đây là một số loại tính năng ẩn: D, không chỉ một lỗi thông thường. –
"Toán hạng còn thiếu" đặc biệt là nâng cao lông mày. – aschepler