static void sf(void)
{
}
static void ssff(void) __attribute__ ((section ("data")));
static void ssff(void)
{
}
放在哪一個 section 可以自己決定, 上面的程式用 gcc 轉成下面的
組合語言。
sf 放在 .text
ssff 放在 data (section data,"ax",@progbits)OA
.file "sc.c"
.text
.type sf, @function
sf:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
popl %ebp
.cfi_def_cfa 4, 4
.cfi_restore 5
ret
.cfi_endproc
.LFE0:
.size sf, .-sf
.section data,"ax",@progbits
.type ssff, @function
ssff:
.LFB1:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
popl %ebp
.cfi_def_cfa 4, 4
.cfi_restore 5
ret
.cfi_endproc
.LFE1:
.size ssff, .-ssff
.ident "GCC: (Debian 4.6.3-1) 4.6.3"
.section .note.GNU-stack,"",@progbits
※ 引述《singlovesong (~"~)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: G++
: 1.
: 請問static function 是否放在記憶體中的data section?
: 若是這樣 請問它的recursive call 是在data section上面recursive嗎...
: 再順便請問一下 把上面 static function 改成static method(class method)
: 後 同樣的問題請教
: 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.184.189.124