Tương đương với __declspec(naked)
trong gcc/g ++ là gì? __declspec(naked)
thực sự được sử dụng để khai báo một hàm không có bất kỳ phần kết và phần mở đầu nào.Tương đương __declspec (trần trụi) trong gcc/g ++
Trả lời
Tôi tin rằng không có sự tương đương như vậy với GCC gần đây trong Linux. Trình biên dịch phát ra các phần mở đầu và các giai đoạn khi thích hợp, và bạn nên để lại quyết định đó cho nó. Nó có thể khá tốt trong việc tạo các phần mở đầu hoặc các epilogues khá nhỏ, hoặc thậm chí đôi khi không tồn tại.
Bạn có thể mã chức năng của mình trong hội đồng. Hoặc bạn có thể đặt câu lệnh asm bên trong hàm của bạn.
Và bạn không cho biết lý do bạn muốn thực hiện điều đó. Mục tiêu của bạn là gì và tại sao bạn lại hỏi chính xác?
Bạn đã sai, bản thân tôi đã từng sử dụng một điều như vậy, nhưng không thể nhớ bây giờ. – MetallicPriest
Bạn đã làm điều đó với GCC? Trang được tham chiếu bởi SigTerm là phù hợp với những gì tôi đã nói: nếu bạn không muốn có phần mở đầu hoặc lời kết với GCC và Linux (trên các máy mục tiêu x86 hoặc AMD64), hãy sử dụng asm. –
Vâng, thực sự có, nhưng chỉ cho một số kiến trúc (nhúng), như bạn ngụ ý mình trong một bình luận. – ninjalj
Trên một số kiến trúc, gcc hỗ trợ thuộc tính được gọi là "khỏa thân"; gcc docs gần nhất Tôi đã cung cấp danh sách kiến trúc này: ARM, AVR, MCORE, RX và SPU.
Nếu bạn đang sử dụng một trong những kiến trúc (gcc sẽ cung cấp cho bạn một cảnh báo nếu bạn cố gắng sử dụng nó và nó không được hỗ trợ), thuộc tính có thể được sử dụng như thế này:
__attribute__ ((naked)) int fun()
{
}
[Đã có một chút thảo luận gần đây về danh sách nhà phát triển gcc về việc thêm thuộc tính "khỏa thân" làm tính năng tổng quát hơn và cố gắng hỗ trợ nó trên nhiều kiến trúc hơn, nhưng rõ ràng điều đó không giúp bạn :).]
- 1. Có thể ai đó giải thích __declspec (trần truồng) không?
- 2. Có tương đương g ++ với Visual Studio's __declspec (novtable) không?
- 3. Có trần tương đương với // toán tử bằng Python không?
- 4. python tương đương tương đương
- 5. Tương đương Jaxb trong C#
- 6. DebugBreak tương đương trong Java?
- 7. Tương đương eval() trong Groovy
- 8. generate_series() tương đương trong MySQL
- 9. Vải tương đương trong Haskell?
- 10. cURL tương đương trong VBA?
- 11. getElementById tương đương trong Actionscript?
- 12. Makefile tương đương trong CMake
- 13. BeginUpdate tương đương trong WPF?
- 14. scipy.interpolate.griddata tương đương trong CUDA
- 15. Tương đương JavaBean trong Python
- 16. console.memory tương đương trong Firefox?
- 17. Tương đương Sprintf trong Java
- 18. Tương đương% ~ dp0 trong sh
- 19. EndEdit tương đương trong WPF
- 20. Tương đương DataTable trong Java
- 21. iif tương đương trong C#
- 22. __LINE__ tương đương trong Javascript
- 23. Tương đương JMS trong .Net
- 24. Tương đương Sprintf trong Mathematica?
- 25. tương đương Canonical trong Pattern
- 26. dispatch_after tương đương trong NSOperationQueue
- 27. Trợ lý tương đương Doctrine 2 SUM() tương đương?
- 28. Tương đương TreeSet của Java tương đương với Python?
- 29. Chú thích tương đương SpringData Mongo @Column tương đương (@Property?)
- 30. Meteor upsert tương đương
http://gynvael.coldwind.pl/?id=15 – SigTerm
@SigTerm Tôi sắp đăng liên kết đó, đó là một bản hack gọn gàng. – AusCBloke