久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2355|回復: 0
收起左側

關于一個C語言結構指針的臆想

[復制鏈接]
ID:82781 發表于 2015-6-13 17:08 | 顯示全部樓層 |閱讀模式


我為這個問題糾結,那就是C中的結構指針,書中常見的形制大致是這樣的:
struct
{
     uint32_t a;
     uint16_t b;
     uint8_t c;
}*numb;
然后再程序中引用這個結構指針就是numb->a和numb->b沒什么問題,悲劇的是在庫文件中發現一種我不能解釋的形制如下:
#define numb (numb_typ*)地址這種新式,numb_typ是一個類似結構宏的定義,問了好多人,只言片語,不解其故,怎么解釋呢?我翻來覆去的想這個問題,終于在今早上洗臉的時候突然想到這問題可能是這樣的:

首先:不要管這個宏把它拆解,就是(numb_typ*)地址這種形式那么這個numb_typ是數據類型因為沒記錯的的話結構和枚舉都是數據類型,有在外面加了括號-----“強制類型轉換”但是他轉換誰呢?轉換地址嗎?顯然不是,他肯定不是轉換地址,地址他也不需要轉換,那他轉換誰呢?這時候看看他的后面緊跟“*”,似乎預示著什么?是不是可以理解為他強制轉換了一個結構指針?但是變量跑哪里去了?沒有變量的指針傷不起啊,從結果看是肯定定義的,因為結果中就是用結構指針的形式訪問的。
其次:另一方面講他有不符合常理,不按套路出牌,他沒有用賦值的辦法來把地址寫入而是直接類似定義一個結構指針變量,但是只有把它理解成它定義了一個結構指針變量才符合常理,就變成這種
          (numb_typ)*p;
          p=(numb_typ*)地址;//立即數轉換為地址

這樣P就是一個結構指針,他就指向以這個地址開頭的連續數據區域。所以:
(numb_typ*)地址<=>(numb_typ)*p;p=地址;兩者等價,前者的形制更簡便速度更快,效率更高,只有他等價才可以解釋為什么可以用結構指針來訪問,想必就是“*”帶來的困惑,哎!

總之:以上所述均是不可靠的,有帶進一步請教高人,暫且這樣理解吧,這種寫法是合法的,C語言啊C語言靈活是你的優點也是你的缺點,你太靈活大了!這也映射了人生,加油吧,不管結果是什么但我從未放棄!









回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久操国产 | 国产欧美日韩一区 | 91视频在线观看视频 | 毛片视频免费观看 | 国产一区中文字幕 | 九九精品免费视频 | 国产美女一区二区三区 | 日韩在线免费播放 | 99热在线免费观看 | www午夜| 日韩黄网 | 一区在线观看视频 | 99热最新网址 | 91久久精品日日躁夜夜躁欧美 | 日本黄色三级视频 | 99国产精品99久久久久久 | 激情影院在线观看 | 免费黄色小网站 | 日韩三级精品 | 亚洲欧美国产毛片在线 | 免费一区二区 | 一区二区三区视频 | 亚洲精品一二三四 | 欧美日韩在线精品 | 国产精品视频一区二区三区 | 91精品又粗又猛又爽 | 日韩av手机在线 | 日韩一级在线观看 | 久久精品福利视频 | 国产日本在线观看 | 国产性猛交 | 国产一区二区福利 | 一个色综合网 | 一区在线视频 | 激情综合色 | 久久艹国产 | 大尺度性做爰的小说金陵春 | 亚洲av毛片成人精品 | 亚洲综合区 | 国产一级特黄aaa大片 | 婷婷久久综合 |