2015-06-23 14 views
6

Từ khóa đăng ký là deprecated and mostly ignored.Ngữ nghĩa khác liên kết với từ khóa đăng ký

Nhưng phần nhỏ này của số documentation on the msdn làm tôi ngạc nhiên.

Trình biên dịch không chấp nhận yêu cầu của người dùng đối với biến đăng ký; [...] Tuy nhiên, tất cả các ngữ nghĩa khác được liên kết với từ khóa đăng ký đều được tôn trọng.

Các ngữ nghĩa khác đó là gì?

Trả lời

8

Ví dụ trong C bạn không thể lấy địa chỉ của đối tượng được khai báo với số register chỉ định.

void foo(void) 
{ 
    register int a = 42; 
    &a; // constraint violation 
} 

Một ví dụ khác, bạn không thể sử dụng register trong một tuyên bố phạm vi file:

register int b = 42; // constraint violation 

int main(void) 
{ 
} 
+0

Nói cách khác, trong khi MSVC++ loại bỏ bất kỳ bất lợi thời gian chạy của 'register', bạn vẫn còn có những hạn chế thời gian biên dịch. (Và không, không có upides). – MSalters

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