用gdb搞清楚一道union相关的面试题
題目并不是特別新鮮,不過這個題目在面試上肯定能篩選一大波人,特別是,有的題目大家看到很多次,但是每次都是簡單看看,沒有深入分析,結(jié)果筆試遇到差不多一樣的題目時,自己又傻逼了。
搞C語言,看內(nèi)存地址是一個非常重要的分析方法,而用gdb看內(nèi)存,我覺得是十分方便、簡單、有效的。
之前寫過union相關(guān)的文章
C語言,使用union了解內(nèi)存
題目如下:
先不說答案
我們先用gdb 看看內(nèi)存信息,這種如果不能馬上下判斷的題目,看內(nèi)存是最舒服的。
我發(fā)一個gdb相關(guān)的文章,寫得非常不錯,大家可以看看。
GDB調(diào)試器原來那么簡單
https://blog.csdn.net/awm_kar98/article/details/82840811
嗯,然后先運行起來
先確認(rèn)幾個長度大小
搞清楚這個東西之前,再復(fù)習(xí)之前說的大小端的內(nèi)容
C語言驗證大小端的幾個方法
然后再我們看內(nèi)存
這個和 s.a 是對應(yīng)上的
我們系統(tǒng)默認(rèn)都是使用的小端模式,也就是數(shù)據(jù)的低位在低地址,高位在高地址。
也就是說s.b?的值是
0x0000003800000039
所以,這段代碼的輸出是
完
推薦閱讀:
專輯|Linux文章匯總
專輯|程序人生
專輯|C語言
我的知識小密圈
總結(jié)
以上是生活随笔為你收集整理的用gdb搞清楚一道union相关的面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GO PDF资源 汇总!
- 下一篇: 海康威视球形摄像头激活,web二次开发