Tôi đang cố gắng sắp xếp byte một hàm thành ranh giới 16 byte bằng cách sử dụng thuộc tính 'căn chỉnh (16)'. Tôi đã làm như sau: void __attribute__((aligned(16))) function() { }
C Căn chỉnh chức năng trong GCC
(Nguồn: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html)
Nhưng khi tôi biên dịch (foo.c gcc, không makefiles hoặc kịch bản mối liên kết được sử dụng), tôi nhận được lỗi sau:
FOO.c : 99: lỗi: liên kết có thể không được chỉ định cho 'chức năng'
Tôi đã cố gắng căn chỉnh đến 4,8,32, v.v. nhưng lỗi vẫn giữ nguyên. Tôi cần điều này để căn chỉnh một gián đoạn dịch vụ thường xuyên cho một bộ xử lý dựa trên powerpc. Cách làm đúng là gì?
Tại sao bạn muốn làm điều này? –
OP đã giải thích chính xác lý do tại sao họ cần phải làm điều này, trong câu thứ hai. – caf
Một cách sử dụng thú vị khác để sắp xếp các chức năng là lưu trữ dữ liệu bổ sung trong các bit thấp của các biến con trỏ hàm ... –