السلام عليكم
حبيت اشاركم معلومة
من المعلوم ان الخاصية
في مترجم GCC مفعلة فقط في معالجات ARM, AVR, MCORE, RX and SPUاقتباس__attribute__ ((naked))
بينما في MSVC توجد هذه الخاصية في معالجات i386 , طبعا للذين لا يعرفون الهدف من الخاصية هو انه عندما نضيفها الي الدالة تصبح هذه الاخيرة بدون Prolog/Endlog يعني مثل التسمية : عارية
المهم انه هناك تحايل ان صح التعبير hack لمحاكات هذه الخاصية في معالجات i386 بواسطة المحبوب Gcc
اليكم مثال يوضح الامر
#include <stdio.h>
#ifdef __cplusplus
extern "C"{
asm("_sqrtd:"
"fld qword ptr [esp+4] \n"
"fsqrt \n"
"ret 8 \n"
);
double sqrtd(double x);
}
#endif
int main()
{
double x = 25;
printf("the sqrt of 25 is : %f \n",sqrtd(x));
getchar();
}