原创 如何編譯和運行C++程序

C++ 和C語言類似,也要經過編譯和鏈接後才能運行。在《C語言編譯器》專題中我們講到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常見 IDE 或編譯器,它們除了可以運行C語言程序,

原创 內網IP與公網IP

內網IP: 由圖可以看到路由器(第一層),交換機(第二層)然後是自己的電腦,所謂的內網就是從路由器以下開始的。我們內網用戶的電腦都是經過交換機和路由器之後才能連到外網。路由器只需一個公網IP就可以供下面多個電腦聯網使用。由於不同的內網I

原创 RamDisk

內存的傳輸率目前在GiB/s級別,是MiB/s級別的固態硬盤和機械硬盤無法比擬的。在Linux系統中使用部分內存資源創建虛擬的硬盤,並將頻繁讀取寫入的緩存數據映射到內存硬盤中,可以保護物理硬盤壽命,加速系統響應。 1 什麼是RamDisk

原创 程序的連接之符號和符號表

程序的鏈接中,鏈接的第一步就是符號的解析。要理解符號的解析過程,得先搞明白以下幾點: 什麼是符號 什麼是符號的定義,什麼是符號的引用 鏈接符號的類型有哪些,各自有什麼特點 符號表的結構 鏈接器對符號的解析規則 下面就來一步步搞明白這些點。

原创 Linux編程之select

select系統調用的的用途是:在一段指定的時間內,監聽用戶感興趣的文件描述符上可讀、可寫和異常等事件。 select 機制的優勢 爲什麼會出現select模型?先看一下下面的這句代碼: int iResult = recv(s, bu

原创 交叉編譯GDB工具鏈

1. 交叉編譯 交叉編譯是指在一種平臺上編譯出運行於另一種平臺的程序。這裏的平臺,涉及硬件和軟件兩個部分,硬件平臺指 CPU 架構,軟件平臺指操作系統。交叉編譯主要針對嵌入式領域,因爲嵌入式系統資源受限,沒有辦法在嵌入式平臺上運行一套編譯

原创 函數在實現過程內存中的壓棧和出棧

關於函數在調用過程中的壓棧和出棧問題在學習的時候就感覺很經典,對程序的把握可以提升一個臺階。     一.首先讓我們寫出一個簡單的函數。(我是在vc6.0中實現,並不表示vs編譯器底下不可以實現)。     #include <stdi