今天遇到乙個問題
題目描述:
實現函式 unsigned int ipanel_parse_ip_addr(const char*ip)
測試用例:
unsigned int ip addr=ipanel_parse_ip_addr("192.168.10.1");
printf("%x\n",ip_addr);
請在程式關鍵步驟增加必要注釋。
分析:
首先在函式中ipanel_parse_ip_addr要將點分十進位制字串中的數字解析出來,然後將其儲存乙個大小為4的共用體中,將整數轉換為ascii碼,因為char只能到127,如果ip中的數字大於了127,就要用unsigned char,共用體中定義乙個unsigned char [4]的陣列,以及乙個int型變數,將解析出來的數字轉換為ascii的值,然後儲存到unsigned char [4]陣列中,因為linux和windows的機器都是小端模式的,所以第乙個值要儲存在下標為3,第四個值要儲存在0下標,然後再將共用體中的int型變數a以十六進製制輸出,就可以得到結果。
要點:
將乙個int型整數轉換為這個值的ascii碼:
int i=192程式如下:;unsigned
char c=unsigned char(i);
union un執行結果:myun;
unsigned
int ipnel_parse_ip_addr(const
char*ip)
return
myun.a;
}int
main()
結構體與共用體
1.定義乙個機構體的形式 struct 結構名 2.定義結構體變數 變數名表列 變數名表列 3.結構體成員的表示方法 結構變數名.成員名 例如 boy1.num 如果成員本身又是乙個結構則必須逐級找到最低階的成員才能使用。例如 boy1.birthday.month 4.結構體陣列 方法和結構變數相...
結構體與共用體
結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們經常要傳送的不是簡單的位元組流 char型陣列 而是多種資料組合在一起的乙個整體。其表現形式是乙個結構體。簡單來說,結構體就是用來封裝資料的。結構體的定義 struct student struct student stu st...
結構體與共用體
結構體和共用體 聯合體 是自定義的資料型別,常用於處理非數值型資料,使用如 鍊錶 佇列 樹等。1.結構體定義 結構體是用其他型別構造出來的資料型別。結構體型別如下 struct student 定義乙個結構體變數如下 struct student stu1 stu1.age 32 stu1.name...