linux專案筆記 陣列強制轉換成結構

2021-10-06 04:49:39 字數 534 閱讀 9094

乙個陣列指標強制轉換成結構體指標得到的結構:

位元組對齊:

如果結構體中所有屬性所佔位元組和陣列的型別所佔位元組一樣(如果陣列型別是16位的,屬性也是16位的),那就直接按照屬性的順序,將陣列中的資料依次讀取出來(是讀取,不是複製,因為是指標強制轉換)

位元組不對齊:

如果結構體屬性所佔位元組數和陣列的型別不一樣,那樣資料就會亂,結構體會按照屬性的型別依次讀取型別長度的資料,然後資料就會亂。

專案例子:(專案中在收發資料報設計中)

lpcomm_pkg_header  ppkgheader;//定義的包頭結構體指標

ppkgheader =(lpcomm_pkg_header)pconn->dataheadinfo;//dataheadinfo是char*型別;pconn是連線池指標

專案中,將dataheadinfo陣列長度設定為sizeof(結構體),那麼轉換的時候,結構體內的變數就能讀取到正確的且相對應的值

相關實驗連線

Swift筆記 陣列

建立乙個空陣列 使用構造語法來建立乙個由特定資料型別構成的空陣列 var array int print array.count count 通過建構函式的型別,array的值型別被推斷為 int 建立乙個帶有預設值的陣列 swift 中的array型別還提供乙個可以建立特定大小並且所有資料都被預設...

PHP筆記,陣列

1.php有兩種陣列 索引陣列 關聯陣列。索引和關聯兩個詞都是針對陣列的鍵而言的 1 索引陣列是指數組的鍵是整數的陣列,並且鍵的整數順序是從0開始,依次類推。索引陣列的初始化 fruit array 蘋果 香蕉 菠蘿 2 關聯陣列是指數組的鍵是字串的陣列。可以使用 print r 陣列名 語句輸出陣...

java筆記 陣列

陣列 1 是一種資料型別 應用型別 2 相同資料型別元素的集合 3 陣列的定義 資料型別 資料名 new 資料型別 大小 int a 宣告整型變數 int a 宣告整型陣列變數 int a 5 int new int 5 宣告整型陣列a,包含5個元素 每個元素都是int型別,預設值為0 double...