原创 指針複雜類型

原則:從變量名起,根據運算符優先級結合,一步一步分析 (1) int p; //這是一個普通的整型變量 (2) int *p; //首先從p處開始,先與*結合,所以說明p是一個指針,然後再與int 結合,說明 指針所指向的內容的類型

原创 socket通信原理與實現

socket的基本操作     ①socket()函數     ②bind()函數     ③listen()、connect()函數     ④accept()函數     ⑤read()、write()函數等     ⑥close

原创 TCP通信之三次握手四次揮手

TCP是面向連接的,雙方發送數據之前,必須先在雙方之間建立一條連接。TCP協議不同於UDP協議,UDP協議不保證可靠性,而TCP 協議提供可靠的連接服務,連接是通過三次握手進行初始化的。三次握手的目的是同步連接雙方的序列號和確認號 並交換

原创 Notepad++ 配置 MinGW(gcc)編譯環境配置 以及問題解決

1.安裝編譯器 notepad++只是一個文本編輯器,本身沒有編譯C/C++的功能。所以要想先配置,就要先裝上一個編譯器。我是用的是MinGW。下載鏈接http://gd.tuwien.ac.at/gnu/mingw/MinGW-3.0.

原创 C++虛基類與虛繼承

爲什麼有虛繼承 多繼承(Multiple Inheritance)是指從多個直接基類中產生派生類的能力,多繼承的派生類繼承了所有父類的成員。儘管概念上非常簡單,但是多個基類的相互交織可能會帶來錯綜複雜的設計問題,命名衝突就是不可迴避的

原创 無名管道

版權聲明:本文爲博主原創文章,未經博主允許不得轉載 無名管道 管道是linux中重要的通信方式,這裏所說的是無名管道,無名管道具有以下特點: 他只能用於具有親緣關係的進程之間(也就是父子進程或者是兄弟進程之間)是一種半雙工的通信模式,具

原创 內核數據結構移植

http://blog.csdn.net/weixin_37977062?viewmode=contents 主要移植了內核中的 list,rbtree。使得這2個數據結構在用戶態程序中也能使用。 同時用 cpputest 對移植後

原创 C++構造函數

構造函數的作用 在創建對象時,爲對象分配內存空間並初始化 類的構造函數不能被繼承(構造函數不能被繼承是有道理的,因爲即使繼承了,它的名字和派生類的名字也不一樣,不能成爲派生類的構造函數,當然更不能成爲普通的成員函數) 構造函數的形

原创 container_of與offsetof詳解

Linxu內核中宏container_of的作用是根據結構體成員的一個指針地址來獲取整個結構體的地址,要想理解container_of,我們先來看看宏offsetof 我們先來看看宏offsetof 在Linux內核中是這樣定義的: #

原创 深拷貝與淺拷貝

淺拷貝  所謂淺拷貝,指的是在對象複製時,只對對象中的數據成員進行簡單的賦值,默認拷貝構造函數執行的也是淺拷貝 class Rect { public: Rect(){ count++; cout<<count<<endl; }

原创 C語言inline函數

c語言中的的內聯(inline)函數 c/c++中的inline,使用在函數聲明處,表示程序員請求編譯器在此函數的被調用處將此函數實現插入,而不是像普通函數那樣生成調用代碼(申請是否有效取決於編譯器)。一般地說,這樣作的優點是省掉了調用

原创 有名管道

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 有名管道 有名管道是獨立於進程存在的 有名管道可以看成是有文件名標識的一個管道,不同於管道之處在於它提供一個路徑名與之關聯,以FIFO的文件形式存在於文件系統中。FIFO一旦創

原创 notepad++查看項目源碼

函數跳轉 a. notepad++中函數跳轉,需要安裝插件 SourceCookifier. 在notepad++的菜單 plugins/plugin manager 安裝 SourceCookifier b. 點擊菜單 plu

原创 開發板mount掛載到紅帽6.5方法及問題解決

1.創建共享目錄 #mkdir /arm 2.創建或修改/etc/exports文件#vim /etc/exprots /arm *(rw) //*代表所有主機 3.nfs服務的啓動與停止#service nfs start#serv

原创 C++析構函數

作用: 創建對象時系統會自動調用構造函數進行初始化工作,同樣,銷燬對象時系統也會自動調用一個函數來進行清理工作(例如回收創建對象時消耗的各種資源),這個函數被稱爲析構函數。 析構函數(Destructor)也是一種特殊的成員函數,沒有