一.調(diào)整目錄結(jié)構(gòu)為了方便編譯,現(xiàn)在我們將前面文章的代碼結(jié)構(gòu)做如下調(diào)整。root@ubuntu:/mnt/hgfs/code/chat#?tree?..├──?chat_client│???├──?include│???├──?Makefile│???├──?obj│???│???...
首先聲明一點,虛表并非是C語言的官方標(biāo)準(zhǔn)的一部分,只是各家編譯器廠商在實現(xiàn)多態(tài)時的解決方案。另外即使同為虛表不同的編譯器對于虛表的設(shè)計可能也是不同的,本文主要基于ItaniumCABI(適用于gcc和clang)。從C的POD類型到C的類首先回顧一下C語言純POD的結(jié)構(gòu)體(str...
前言:一轉(zhuǎn)眼從事前端已經(jīng)6年了,從當(dāng)時的小白到如今大廠的技術(shù)專家,中間也走過不少彎路,從今天開始我會持續(xù)更新前端技術(shù)文章,并且整體的文章會進行體系梳理,整個知識體系分為:基礎(chǔ)精講,框架講解,框架及工具原理,前端面試題精講,大廠面試題收錄精講,前端新技術(shù)講解。通過完善的技術(shù)精講助力...
計算機網(wǎng)絡(luò)的原理其實很簡單,但是套上專業(yè)名詞后,那些看不見、摸不著的概念,會讓人云里霧里。其實理解了網(wǎng)絡(luò)名詞,再去學(xué)習(xí)網(wǎng)絡(luò),會感覺像打開了任督二脈,發(fā)現(xiàn)網(wǎng)絡(luò)不過如此。因此,掌握一定數(shù)量的網(wǎng)絡(luò)概念名詞是很有必要的,現(xiàn)在有一本匯總了98個常見網(wǎng)絡(luò)名詞和60張配圖的武林秘籍,見你有緣就...
過去的二十年中,我們似乎總能夠聽到層出不窮的致富故事,但近些年來,這樣的事情似乎越來越少,不常聽說了,好像互聯(lián)網(wǎng)的小富挺多,但波瀾起伏的大富,正在慢慢遠離我們。來看一段文字,是一位剛剛失業(yè)的四十歲高級碼農(nóng),在近二十年的歲月中,努力積攢下巨額財富的經(jīng)歷:這是知乎問題「40歲因為財務(wù)...
↓推薦關(guān)注↓無論你寫什么樣的代碼都會交給CPU來執(zhí)行,所以,如果你想寫出性能比較高的代碼,這篇文章中提到的技術(shù)還是值得認真學(xué)習(xí)的。另外,千萬別覺得這些東西沒用,這些東西非常有用,十多年前就是這些知識在性能調(diào)優(yōu)上幫了我的很多大忙,從而跟很多人拉開了差距……基礎(chǔ)知識首先,我們都知道現(xiàn)...
1.單線程/進程在TCP通信過程中,服務(wù)器端啟動之后可以同時和多個客戶端建立連接,并進行網(wǎng)絡(luò)通信,但是在介紹TCP通信流程的時候,提供的服務(wù)器代碼卻不能完成這樣的需求,先簡單的看一下之前的服務(wù)器代碼的處理思路,再來分析代碼中的弊端://?server.c#include?#inc...
在掌握了基于TCP的套接字通信流程之后,為了方便使用,提高編碼效率,可以對通信操作進行封裝,本著有淺入深的原則,先基于C語言進行面向過程的函數(shù)封裝,然后再基于C進行面向?qū)ο蟮念惙庋b。1.基于C語言的封裝基于TCP的套接字通信分為兩部分:服務(wù)器端通信和客戶端通信。我們只要掌握了通信...
大家好,我是小林。前幾天發(fā)了一篇「為了拿捏Redis數(shù)據(jù)結(jié)構(gòu),我畫了20張圖」,收獲了很多好評,但是當(dāng)時急于發(fā)文,有些地方?jīng)]有寫完,也有些地方寫的不是很完善。然后我最近花了很多時間來完善文章,不僅加入了Redis新版本的兩個數(shù)據(jù)結(jié)構(gòu),也在之前的文章內(nèi)容加入了很多內(nèi)容。這次完整版終...
大家好,我是小林。今天分享一位老哥的故事,他2006年從浙大碩士畢業(yè),一畢業(yè)就在上海從事了軟件開發(fā)的工作。在魔都待了8年,并且在上海完成了落戶,結(jié)婚,買房,生子,但是最后老哥還是舉家回到了成都。是什么讓他離開“穩(wěn)定扎根”的上海呢?讓我們一起來聽聽他的想法。作者:肖飛,諾西軟件架構(gòu)...
大家好,我是小林。Redis為什么那么快?除了它是內(nèi)存數(shù)據(jù)庫,使得所有的操作都在內(nèi)存上進行之外,還有一個重要因素,它實現(xiàn)的數(shù)據(jù)結(jié)構(gòu),使得我們對數(shù)據(jù)進行增刪查改操作時,Redis能高效的處理。因此,這次我們就來好好聊一下Redis數(shù)據(jù)結(jié)構(gòu),這個在面試中太常問了。注意,Redis數(shù)據(jù)...
大家好,我是小林。最近,一些讀者朋友跟我抱怨,國內(nèi)競爭壓力大,想去外企,甚至國外試試機會,咨詢下我的建議。怎奈我也沒在國外呆過,沒有發(fā)言權(quán),但利弊肯定是有的,最起碼在國外離家人就遠了,更何況近年的疫情,或多或少都不讓人放心。但是一些外企在國內(nèi)都是可以遠程辦公的,這點倒是很舒服。正...
不多說,直接發(fā)車!今天我們要講的就是MySQL的容災(zāi)。容災(zāi)一直是后臺開發(fā)中的重點,如果是線上服務(wù)出了問題,沒有合適的容災(zāi)機制,那么對業(yè)務(wù)來說一定會是個沉重的打擊,但是容災(zāi)同時也是拉開能力差距的難點,需要有強勁的實力才能把握住。不知道阿柴能不能經(jīng)受住這樣的考驗?,F(xiàn)在,就讓我們繼續(xù)開...
象山公園??理想情況下,我們希望擁有無限大的內(nèi)存容量,這樣就可以立刻訪問任何一個特定的機器字,但我們不得不認識到有可能需要構(gòu)建分層結(jié)構(gòu)的存儲器,每一層次容量都要大于前一層次,但其訪問速度也要更慢一些。早在計算機剛被發(fā)明出來的時候,那些計算科學(xué)界的先驅(qū)們就已經(jīng)預(yù)測到之后的計算機結(jié)構(gòu)...
大家好,我是小林。之前有個讀者問我,他是轉(zhuǎn)行自學(xué)計算機的,問我有沒有必要包裝三年工作經(jīng)驗。這我肯定肯定不建議的,做人還是要誠實守信。包裝過的簡歷,即時你真的運氣好,蒙混過了面試官,但是你入職后很容易就暴露出來的,你明明沒有工作經(jīng)驗,卻說自己工作過幾年,結(jié)果你入職工作后,問你啥都不...