2009-09-09 27 views

Trả lời

13

Tôi tin rằng _declspec là tên cũ của cùng một từ khóa cụ thể của Microsoft __declspec. Từ quan điểm C++ Standard, hai dấu gạch dưới chính xác hơn một dấu gạch dưới đơn cho phần mở rộng như thế này. Đó là theo 17.4.3.1.2/1:

Một số bộ tên và chữ ký chức năng luôn dành cho việc thực hiện:

  • Mỗi tên có chứa một dấu gạch dưới đôi (_ _) hoặc bắt đầu với dấu gạch dưới theo sau là một chữ cái viết hoa trên (2.11) được dành riêng cho việc triển khai cho bất kỳ việc sử dụng nào.
  • Mỗi tên bắt đầu bằng dấu gạch dưới được dành riêng cho việc triển khai để sử dụng làm tên trong không gian tên toàn cầu .
+1

Đúng. Điều đó có nghĩa là bạn không thể khai báo một hàm '_declspec()' trong không gian tên chung được gọi, nhưng bạn được phép khai báo phương thức '_declspec()'. Vì lý do đó, Microsoft không thể sử dụng '_declspec' làm từ khóa. – MSalters

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