0
是否可以強制gcc將數組存儲在特定的段中?GCC全局變量存儲
我想這
static const Host_Vtable_Entrty Host_vtable[]=
{
{"Window_create",(Function)Window_create}
,{"Window_cropEllipse",(Function)Window_cropEllipse}
,{"Window_cropRect",(Function)Window_cropRect}
,{"Window_cropRectRound",(Function)Window_cropRectRound}
,{"Window_destroy",(Function)Window_destroy}
,{"Window_filenameGet",(Function)Window_filenameGet}
,{"Window_filenameGet",(Function)Window_messageBox}
,{"Window_move",(Function)Window_move}
,{"Window_styleSet",(Function)Window_styleSet}
};
要存儲在只讀地方,但它被放在數據段:
.data
.align 32
_ZL11Host_vtable:
.quad .LC0
.quad _Z13Window_createP6WindowP6ObjectPFyS2_PjyyEPFyS2_yPvE
.quad .LC1
.quad _Z18Window_cropEllipseP6Windowjdddd
.quad .LC2
.quad _Z15Window_cropRectP6Windowjdddd
.quad .LC3
.quad _Z20Window_cropRectRoundP6Windowjdddddd
.quad .LC4
.quad _Z14Window_destroyP6Window
.quad .LC5
.quad _Z18Window_filenameGetPcyPKcS1_j
.quad .LC5
.quad _Z17Window_messageBoxP6WindowPKcS2_j
.quad .LC6
.quad _Z11Window_moveP6Windowdddd
.quad .LC7
.quad _Z15Window_styleSetP6Windowjj
我需要手動編寫組件?
如果你解釋爲什麼你想這樣做,這將有所幫助。 –
如果這些函數指針被覆蓋,則生成程序SIGSEGV。 – user877329
如果它是隻讀空間,它將如何重新定位?您在那裏有功能,其地址在段創建時不知道。 –