Các trường hợp sử dụng thực tế cho con trỏ được gắn thẻ là gì? [đóng cửa]


8

Các trường hợp sử dụng thực tế cho con trỏ được gắn thẻ là gì?

Điều này chủ yếu đến từ việc đọc về các hệ thống 64 bit nhỏ và có thể sử dụng các con trỏ từ 64 bit .

Theo hiểu biết của tôi, các con trỏ được gắn thẻ là các địa chỉ có thể chứa thông tin bổ sung theo bit do không gian địa chỉ có thể có trên kiến ​​trúc cụ thể đó nhỏ hơn nhiều.

Nhưng sau đó, có thể sử dụng con trỏ được gắn thẻ ngoài các trường hợp tầm thường? Bất kỳ ý tưởng / ví dụ mát mẻ?

Có thư viện phổ biến, khung công tác tận dụng con trỏ 64 bit thông qua con trỏ được gắn thẻ không? Điều đó có thể trên mọi phần cứng?


5
Lisps thường xuyên sử dụng các con trỏ được gắn thẻ để chuyển đổi liền mạch giữa các số nguyên và bignums. Với một thẻ, địa chỉ được hiểu là int và với một thẻ khác, nó được hiểu là con trỏ tới một bignum.
Patrick

2
Một số cách sử dụng thực tế của các con trỏ được gắn thẻ: * Thời gian chạy Objective-C trong Mac OS X 10.7 - mikeash.com/pyblog/ . * Thời gian chạy Objective-C trong iOS 7 trên ARM64 - mikeash.com/pyblog/friday-qa-2013- 09-27-arm64-and-you.html
không ai

tất nhiên là một cuộc bỏ phiếu ... một lần nữa ... mà không có bất kỳ bình luận nào.
auselen

1
Câu hỏi này dường như lạc đề vì đây là một câu hỏi bỏ phiếu. Không có tiêu chí nào được cung cấp để làm cho bất kỳ câu trả lời cụ thể nào nổi bật hơn bất kỳ câu trả lời nào khác.

Vì vậy, đây không phải là về "khái niệm cấu trúc dữ liệu"? ( lập trình
viên.stackexchange.com / help / on

Câu trả lời:


4

Thư viện trie critbit sử dụng các con trỏ được gắn thẻ để phân biệt giữa các nút bên trong và bên ngoài trong trie. Bằng cách đảm bảo rằng các nút mới được phân bổ được căn chỉnh theo một giá trị nhất định, bạn được đảm bảo rằng một số bit thấp hơn của địa chỉ bằng 0, số lượng tùy thuộc vào sự liên kết bạn yêu cầu. Sau đó, bạn có thể lưu trữ thông tin khác trong các bit này ... trong trường hợp các nút critbit, LSB được đặt nếu nút bên ngoài (một chiếc lá). Chỉ cần nhớ mở khóa địa chỉ nếu bạn có ý định sử dụng nó.

Nó tiết kiệm có một biến thành viên bổ sung trong cấu trúc nút.


Thủ thuật tương tự được sử dụng trong các cây kd được sử dụng để dò tia - Wald et al. căn chỉnh các nút sao cho hai bit thấp hơn của con trỏ con luôn bằng 0 và sử dụng các bit đó để lưu trữ mặt phẳng phân tách.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.