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