stcmp的實現 馬鴻凱 新浪部落格

2021-10-10 12:08:25 字數 861 閱讀 1797

#include

"stdio.h"

#include

"assert.h"

intstrcmpstr(

const

char

*res

,const

char

*des)

if( ret > 0)

else

if( ret < 0 )

return

ret; }

intmain()

附錄:在c中,預設的基礎資料型別均為signed,現在我們以char為例,說明(signed) char與unsigned char之間的區別 

首先在記憶體中,char與unsigned char沒有什麼不同,都是乙個位元組,唯一的區別是,char的最高位為符號位,因此char能表示-128~127, unsigned char沒有符號位,因此能表示0~255,這個好理解,8個bit,最多256種情況,因此無論如何都能表示256個數字。

在實際使用過程種有什麼區別呢?

主要是符號位,但是在普通的賦值,讀寫檔案和網路位元組流都沒什麼區別,反正就是乙個位元組,不管最高位是什麼,最終的讀取結果都一樣,只是你怎麼理解最高位而已,在螢幕上面的顯示可能不一樣。

但是我們卻發現在表示byte時,都用unsigned char,這是為什麼呢?

首先我們通常意義上理解,byte沒有什麼符號位之說,更重要的是如果將byte的值賦給int,long等資料型別時,系統會做一些額外的工作。

如果是char,那麼系統認為最高位是符號位,而int可能是16或者32位,那麼會對最高位進行擴充套件(注意,賦給unsigned int也會擴充套件)

而如果是unsigned char,那麼不會擴充套件。

linux命令 ulimit 馬鴻凱 新浪部落格

在占用記憶體空間較大的區域性陣列宣告的前面加static將其從堆疊資料段挪到全域性資料段即可。堆疊大小預設1mb 可以在鏈結選項中改大 區域性變數是放在棧空間中的,而函式傳遞的引數也在棧空間中,struct original bp newh row col 這個陣列太大,把棧空間其它的資料給覆蓋了。...

檔案讀寫方式 馬鴻凱 新浪部落格

在fopen最後乙個有個類似許可權的東西 如下 file fopen const char path,const char mode mode 開啟方式 有下列幾種形態字串 r 以唯讀 方式開啟檔案,該檔案必須存在。r 以可讀寫方式開啟檔案 該檔案必須存在。rb 讀寫開啟乙個二進位制檔案 允許讀資料...

黏包以及處理 馬鴻凱 新浪部落格

產生物件 tcp中的接受方 黏包原因 收方在讀取緩衝區時,緩衝區存在多個資料報。在tcp協議中接收方是一次讀取緩衝區中的所有內容 解決方式 自定協議 自定協議,將資料報分為了封包和解包兩個過程。在傳送方傳送資料時,對傳送的資料進行封包操作。在接收方接收到資料時對接收的資料報需要進行解包操作。自定協議...