'Hizalanmış (16)' özniteliğini kullanarak bir işlevi 16 baytlık sınırla bayt hizalamaya çalışıyorum. Yaptığım şu: void __attribute__((aligned(16))) function() { }
C İşlev hizalaması GCC'de
(Kaynak: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html)
Ama (gcc foo.c; kullanılan hayır Makefile veya bağlayıcı komut dosyaları) derleme yaparken, aşağıdaki hatayı alıyorum:
foo.c : 99: hata: hizalama 'işlev' için belirtilmemiş olabilir '
Aynı zamanda 4,8,32 vb. Ile hizalamayı denedim ancak hata aynı kalıyor. Bir powerpc tabanlı işlemci için bir Interrupt Service Rutinini hizalamak için buna ihtiyacım var. Bunu yapmanın doğru yolu nedir?
Bunu neden istiyorsun? –
OP, son cümlede neden bunu yapmaları gerektiğini tam olarak açıkladı. – caf
Fonksiyonları hizalamak için başka bir kötülük kullanımı, fonksiyon-işaretçi değişkenlerinin düşük bitlerine ek verileri depolamaktır. –