精品理论电影在线_日韩视频一区二区_一本色道精品久久一区二区三区_香蕉综合视频

計(jì)算機(jī)二級(jí)C基礎(chǔ):(*(void(*)())0)()

發(fā)布時(shí)間:2011-08-29 共1頁(yè)

  (*(void(*)())0)(),這是在C陷阱與缺陷中,關(guān)于解決計(jì)算機(jī)開機(jī)啟動(dòng)后,硬件讀取首地址為0位置的子例程的代碼。
  先看(*fp)(),fp是一個(gè)函數(shù)指針,*fp就是該指針?biāo)赶虻暮瘮?shù),(*fp)()就是調(diào)用該函數(shù)的方式。
  我們按照題目要求假設(shè)可以的話,則字面上可以寫成(*0)();但是,正如(*fp)(),運(yùn)算符*必須要一個(gè)
  指針來(lái)作操作數(shù),并且是函數(shù)指針,這樣經(jīng)過(guò)運(yùn)算符*作用后的結(jié)果才能作為函數(shù)被調(diào)用。因此 ,需要對(duì)0進(jìn)行類型
  轉(zhuǎn)換,轉(zhuǎn)換后的意思可以描述為:指向返回值為void類型的函數(shù)的指針,其等價(jià)于( void (*) () )0。(*0)()加上
  0轉(zhuǎn)換后的類型為(*(void(*)())0)()。
  當(dāng)然,一下方式的書寫可以使表達(dá)更明確:
  typedef void (*func)();//定義了一個(gè)指向返回值是void類型的函數(shù)指針
  (*(func)0)(); //用上面的指針實(shí)現(xiàn)強(qiáng)制轉(zhuǎn)換。

百分百考試網(wǎng) 考試寶典

立即免費(fèi)試用