原创 linux 庫文件 生成與使用

1、linux庫文件分爲靜態庫和動態庫兩種。靜態庫習慣以.a 結尾,而動態庫習慣以.so(shared object)結尾。而且必須以lib開頭。2、靜態庫的原則是“以空間換時間”,增加程序體積,減少運行時間;生成:在編譯時候,先生成目標

原创 (C語言)頭文件實現的函數

在C語言裏面,有時候爲了方便(方便的同義詞是偷懶),函數就直接在頭文件裏面實現了。那麼這樣子有什麼問題呢?下面舉個例子,這個例子只有3個文件/* fu

原创 TCP/IP 之TCP協議(6):4種計時器

1、大多數TCP實現使用至少4種計時器:重傳,2MSL,持久,保活2、2MSL計時器用於連接終止時,原因見:TCP協議的狀態和連接3、保活計時器(keepalive timer)用於防止連接出現長時間的空閒;每當服務器收到客戶消息就把該計

原创 TCP/IP 之TCP協議(7):選項字段

1、TCP首部選項字段多達40B,記下一些常用的東西:2、選項結束字段(EOP,0x00),佔1B,一個報文段僅用一次。放在末尾用於填充,用途是說明:首部已經沒有更多的消息,應用數據在下一個32位字開始處3、無操作字段(NOP, 0x01

原创 插值算法之:拉格朗日插值

記一下拉格朗日插值公式的推導和一些要點【這裏說的都是二維插值,多維上的以此類推】   1、插值問題:在做實驗的過程中,往往得到一堆離散的數據,現在想用數學公式模擬這堆離散數據。怎麼辦,數學家們提出了插值問題。插值問題的提法是這樣的給定一堆

原创 c/c++結構體對齊小結

因爲我看C++對象模型的時候,遇到了幾個內存佈局都是有關於對齊的一些細節,故此對結構體對齊再做一份小結,有人說:結構體對齊這個東西是依賴於編譯器的,因此不用去研究,真的嘛?   也許是,也許不是,要看你是做那個行業的了,如果你是做系統地層

原创 c++對象類型筆記:private,protected,public

面試的時候經常有人問:c++中,怎麼才能不通過public函數來取得private的數據成員?當然,答案很多,比如如下的兩個方法:(1)、#define private public; #define class struct(可以在編譯

原创 MFC消息映射的原理:筆記

多態的實現機制有兩種,一是通過查找絕對位置表,二是查找名稱表;兩者各有優缺點,那麼爲什麼mfc的消息映射採用了第二種方法,而不是c++使用的第一種呢?因爲在mfc的gui類庫是一個龐大的繼承體系,而裏面的每個類有很多成員函數(只說消息反映

原创 (轉)網上摘抄:圖像處理的網上資料

(轉)網上摘抄:圖像處理的網上資料   作圖像處理方面的研究工作,最重要的兩個問題:其一是要把握住國際上最 前沿的內容;其二是所做工作要具備很高的實用背景。解決第一個問題的辦法就是找出這個方向公認最牛的幾個超級大拿( 看看他們都在作

原创 C++對象模型筆記:dynamic binding

  C++對象模型筆記:dynamic binding   編譯器對於多態的實現是怎樣的呢?下面請看一個例子:   Class Point { Public: Virtual void print(); …… };

原创 C++對象模型筆記:對象實例內存佈局的小小結

前一篇筆記中已經說出了類的對象實例在內存中的三種可能的內存佈局,其中,最後一種是c++編譯器正在使用的。這種佈局的特點如下(先拋開虛函數方面的信息,說一般的)   1、非靜態(non-static)數據成員,每個對象實例的內存空間裏都有

原创 刪除串中相同的元素:一個做法

有一個問題,如何刪除兩個字符串相同的字符,比如str1 = "abcdeafg"   str2 = "blimklaaaaa"要得到:str1 = "cdefg" str2 = "limkl"下面直接寫程序

原创 C++對象模型筆記:概述

本系列文章是對Lippman的《深度探索c++對象模型》(“Inside the c++ object model”)的讀書筆記。1、關於作者Lippman:c++首個編譯器的開發者之一,所作的c++方面的書籍有:《c++ primer》

原创 vs2005開發程序引起的:"應用程序初始化失敗"的問題

這個問題是這樣的:每次別人重裝系統後,運行那些用vs2005開發的應用程序,很多時候都會出現:“應用程序初始化失敗....”之類的提示框。   這個問題我兩年前就遇到,結果這兩年多來,時不時的都碰到這個問題,這時候還經常忘記解決方案~,汗

原创 C++對象模型筆記: Name Mangling與重載

上一篇筆記裏面說到,如果c++的成員函數都是全局的,怎麼區分兩個類中的同名的成員函數調用,例如:下面定義了2個類Point1,Point2的對象p1,p2;其中Point1,Point2都有成員函數print:   Point1 p1;