2012-07-12 35 views
19

Tôi đã tìm kiếm điều này khá nhiều, nhưng không có kết quả hữu ích._In_ trong C++ là gì?

Tôi hiện đang cố gắng lập trình trò chơi DirextX đơn giản cho Windows 8 Metro và đã gặp phải số _In_ khá nhiều. Tôi chỉ tự hỏi nó là gì.

Ngoài ra, tôi đã thấy rất nhiều việc sử dụng ^ làm con trỏ * mà tôi thấy lạ. Ngày đầu này, một số lớp học có một giao diện của ref class MyClass, mà tôi tin là cho C# dễ đọc.

Dù sao, bất kỳ trợ giúp nào cũng sẽ tuyệt vời.

+4

'SomeType ^' là con trỏ được quản lý C++/CLI. Đó không phải là C++. – chris

+8

Không ai trong số này thực sự là C++. Chúng là C++/CLI hoặc có lẽ C++/CX (hoặc có thể là "Managed C++" cũ hơn). Vài năm một lần, Microsoft phát minh ra một ngôn ngữ mới dựa trên C++, nhưng với các phần mở rộng cho môi trường "được quản lý" của họ (.NET). Cho đến nay, không ai trong số này đã đạt được nhiều phổ biến (để đặt nó nhẹ). –

+1

Điều này có thể liên quan: [Chúng tôi có nên sử dụng _In_ thay vì __in?] (Http://stackoverflow.com/questions/4093053/should-we-use-in-instead-of-in) –

Trả lời

24

Đây là SAL annotation, được sử dụng để phân tích mã. Các chú thích được định nghĩa là các macro, trong các bản dựng bình thường, mở rộng thành không có gì.

^ref class là các tính năng của C++/CX, một bộ tiện ích mở rộng ngôn ngữ được phát triển để giúp dễ dàng xây dựng ứng dụng kiểu Metro cho Windows 8 bằng C++. Không phải là một phần của tiêu chuẩn C++. Tài liệu (được liên kết trước đây) có các liên kết đến các hướng dẫn và tham chiếu mô tả các phần mở rộng ngôn ngữ.

+0

Câu trả lời hoàn hảo, thực sự đánh giá cao nó. –

0

Tôi nghĩ rằng (từ một google nhanh) rằng _in_ là có để cho biết nếu một tham số là một đầu vào hoặc đầu ra (_out_) đến một hàm/phương pháp.

^ là một con trỏ được quản lý (con trỏ thu thập rác, liên quan đến C++/CLI).

+1

Ha, tôi nghĩ rằng 'ln', không phải 'in'. Đó thực sự là mục đích của Microsoft. – chris

+2

Không phải trong trường hợp này. '^' đánh dấu con trỏ thông minh C++/CX. – Puppy

+0

@DeadMG, cảm ơn, sẽ xem xét C++/CX. – Max

0

_Out_ có nghĩa là đối số được truyền làm tham chiếu. _In_ có nghĩa là ngược lại. (_Out_ x)(&x) tương tự nhau.