五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

c語言學習冷知識點1:調用地址為0的函數

2019-12-01 16:17 作者:技術龍的傳人  | 我要投稿

? ? ? ? 初學者看到(*(void (*)0)()會發(fā)怵,不知道在干什么,哪里會用到呢?怎么就調用了地址為0的函數?這么多層括號又如何去分析呢?......

? ? ? ? ? 這些問題可以暴露出你的基礎水平如何(函數調用,強制轉換,函數指針,指針操作),下面來慢慢分析,裝逼時刻到了??。

1.聲明一個函數如下:

? ? ? ? ? void fun();

函數地址為0x0000_0000,掉用它只需要寫fun();即可

2.函數指針寫法如下:

? ? ? ? ? void (*pfun)();

3.若要函數指針指向fun函數,fun函數地址為0,那就強轉fun為函數指針:

(void (*pfun)())fun?

pfun可以省略,fun被0替換,即0強轉為地址,指向fun函數如下:

(void (*)())0

4.調用0地址的函數如下:

(*(void(*)())0)();

(*(void(*)())0)取0地址中的函數后面再加一個()就調用了0地址的函數。

? ? ? ?新手或多或少會有些蒙,有些基礎的是不是覺得很神奇?當然編程老手肯定會說用typedef不就行了,弄這么花哨干什么?

? ? ? ?當然可以用typedef了,后面會分享給大家下一個知識點提到。

? ? ? ?我這是從?c和陷阱?這本書中看到,函數調用一篇中提到的,分享給大家我的學習心得,大家一起學習進步。如果有錯誤請大家及時指出,大家一起討論學習,思路和視野會開闊一些。感謝大家的支持,謝謝!



c語言學習冷知識點1:調用地址為0的函數的評論 (共 條)

分享到微博請遵守國家法律
鹤庆县| 肥西县| 修武县| 蒲城县| 临夏县| 包头市| 三河市| 太白县| 钦州市| 临安市| 屏边| 凭祥市| 孟津县| 朝阳市| 安西县| 泸溪县| 柳河县| 达孜县| 宜春市| 和静县| 鱼台县| 军事| 太康县| 容城县| 临武县| 武清区| 兴宁市| 屯留县| 汤阴县| 渭南市| 旬阳县| 新巴尔虎右旗| 乌什县| 海门市| 克山县| 西华县| 垦利县| 丰都县| 天柱县| 陕西省| 屏东县|