Ý nghĩa của các từ khóa này được sử dụng trước các biến trong một tham số chức năng là gì?Ý nghĩa của __in, __out, __in_opt
__in
__out
__in_opt
Ý nghĩa của các từ khóa này được sử dụng trước các biến trong một tham số chức năng là gì?Ý nghĩa của __in, __out, __in_opt
__in
__out
__in_opt
Đó là một số trong những trang trí vĩ mô cũ từ SAL Chú thích của Microsoft (the newer ones bây giờ làm theo vỏ khác nhau, bắt đầu với số vốn). Chúng không có ảnh hưởng thực sự đến việc biên dịch (dưới VS 2010 chúng thậm chí không được mở rộng), chúng có sẵn cho tài liệu API nội tuyến.
__in
: tham số này là đầu vào cho hàm (chỉ đọc, người gọi khởi tạo).__out
: tham số này chứa đầu ra từ hàm khi hàm trả về (chỉ ghi, người gọi đã khởi tạo).__in_opt
: chú thích ghép được tạo thành từ _in
và _opt
, _opt
cho biết thông số là tùy chọn và có thể được đặt thành giá trị mặc định (thường là NULL
).Bạn có thể xem giải thích đầy đủ ở đây về các đồ trang trí cũ hơn here.
nó rất chi tiết cảm ơn rất nhiều. tôi đã tìm kiếm một thời gian dài bây giờ tôi cuối cùng đã tìm thấy câu trả lời ở đây. – Zcube
Được trả lời bởi Nercolis, đây là những thuộc tính chú thích SAL. Tuy nhiên, đây không chỉ là nội bộ hoặc chỉ cho tài liệu API. Mục đích thực sự là dành cho Phân tích mã. Khi bạn xây dựng dự án với tùy chọn biên dịch /analyze (Thuộc tính dự án, Phân tích mã -> Chung), các vai trò quan trọng này trong việc tìm kiếm các vấn đề về mã hóa.
Ví dụ: nếu đối số con trỏ cụ thể cho biết __in
thì nó không được chuyển qua con trỏ rỗng. Hàm sẽ không kiểm tra null và có thể gây ra SEH. Đối số __in_opt
có thể là null. Khi trình biên dịch tìm thấy một số vấn đề, nó báo cáo nó như là một cảnh báo. Xem this article.
những từ khóa không phải là từ khóa, đó là chú thích SAL của Microsoft – Necrolis
cảm ơn, điều đó có nghĩa là nó không có tác dụng đáng kể? – Zcube
đối với trình biên dịch không, đối với trình lập trình nó sẽ giúp anh ta/cô ấy sử dụng API một cách chính xác. – Necrolis