2010-05-04 52 views

Trả lời

71

inlinetừ khóa, bằng C++ và C99.

__inline là từ khóa dành riêng cho nhà cung cấp (ví dụ: MSVC) cho hàm nội tuyến trong C, vì C89 không có.

tương tự như __inline nhưng là từ một nhóm trình biên dịch khác.

__forceinline là từ khóa dành riêng cho nhà cung cấp khác (chủ yếu là MSVC), sẽ áp dụng nhiều lực hơn để nội dòng hàm so với gợi ý __inline (ví dụ: ngay cả khi mã kết quả xấu hơn).

Ngoài ra còn có __attribute__((always_inline)) trong GCC và tiếng kêu.

+10

__forceinline là một gợi ý mạnh mẽ hơn nội tuyến, nhưng vẫn chỉ là một gợi ý (http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.80%29.aspx). –

+0

Có thể xem xét việc thay đổi ngôn ngữ "Microsoft cụ thể" thành "nhà cung cấp cụ thể" hoặc một cái gì đó tương tự. Nhiều bộ công cụ phát triển chéo mà tôi sử dụng cũng hỗ trợ __inline và __forceinline. Thế giới lớn hơn MSOFT ;-) – Dan

+1

Rất tiếc, đã vô tình CW-ed bài đăng. Bất cứ điều gì. – kennytm

18

__inline, và __forceinline là tất cả triển khai cụ thể. Vì dấu gạch dưới kép chúng là tất cả các mã định danh được dành riêng cho việc triển khai nên không nên xung đột với các số nhận dạng được sử dụng trong các ứng dụng.

inline là từ khóa C++ duy nhất.

8

Đối với Studio biên dịch trực quan nó có nghĩa là:

  • inline - gợi ý để trình biên dịch để inline code của bạn

  • __forceinline - đè tối ưu hóa trình biên dịch được xây dựng trong và tạo ra mã nội tuyến

Để biết thêm thông tin ails xem: http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx

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