原创 C語言—嵌入式開發

預處理器(Preprocessor)   1. 用預處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在這想看

原创 關於數組名的討論

用來存放數組的區域是一塊在棧中靜態分配的內存(非static),而數組名是這塊內存的代表,它被定義爲這塊內存的首地址。這就說明了數組名是一個地址,而且,還是一個不可修改的常量,完整地說,就是一個地址常量。數組名跟枚舉常量類似,都屬於符號常

原创 堆棧的比較

  ■申請方式 ① Stack:由系統自動分配。 ② Heap: 需要程序員自己分配。 C 使用 malloc / delete   C++使用 ne

原创 sizeof用法總結

在VC中,sizeof有着許多的用法,而且很容易引起一些錯誤。下面根據sizeof後面的 參數對sizeof的用法做個總結。 A.參數爲數據類型或者

原创 概率算法簡介

很多算法的每一個計算步驟都是固定的,而在下面我們要討論的概率算法,允許算法在執行的過程中隨機選擇下一個計算步驟。許多情況下,當算法在執行過程中面臨一個選擇時,隨機性選擇常比最優選擇省時。因此概率算法可在很大程度上降低算法的複雜度。 概率算

原创 c++ string詳解

之所以拋棄char*的字符串而選用C++標準程序庫中的string類,是因爲他和前者比較起來,不必擔心內存是否足夠、字符串長度等等,而且作爲一個類出現,他集成的操作函數足以完成我們大多數情況下(甚至是100%)的需要。我們可以用 = 進行

原创 智能指針

原帖及討論:http://bbs.bc-cn.net/dispbbs.asp?BoardID=56&ID=92844 Smart Pointer是C++中的一個大題目,要說清楚他的所有好處很需要費點力氣。我就一個功能一個功能的說。有我理解

原创 VC字節對齊全攻略

  VC中下面幾個結構體大小分別是多少呢struct MyStruct{    double m4;    char m1;    int  m3;};struct MyStruct {    char m1;    double m4

原创 A*算法及其應用

一.引言 圖論是計算機科學中的一個重要研究工具,它產生於歐拉(Euler)對圖的連通性的研究,但直到本世紀計算機誕生以後才得最迅猛的發展。 圖論中

原创 gcc簡介

Gcc簡介Linux系統下的gcc(GNU C Compiler)是GNU推出的功能強大、性能優越的多平臺編譯器,是GNU的代表作品之一。gcc是可以在多種硬體平臺上編譯出可執行程序的超級編譯器,其執行效率與一般的編譯器相比平均效率要高

原创 C語言嵌入式系統編程修煉之道——內存操作篇

  C語言嵌入式系統編程修煉之道——內存操作篇1.數據指針在嵌入式系統的編程中,常常要求在特定的內存單元讀寫內容,彙編有對應的MOV指令,而除C/C++以外的其它編程語言基本沒有直接訪問絕對地址的能力。在嵌

原创 解析“extern”

1、 聲明外部變量 現代編譯器一般採用按文件編譯的方式,因此在編譯時,各個文件中定義的全局變量是 互相透明的,也就是說,在編譯時,全局變量的可見域限制在文件內部。下面舉一個簡單的例子。創建一個工程,裏面含有A.cpp和B.cpp兩個簡單的

原创 Linux基礎認識 理解GNU/Linux

"UNIX 是簡單的,你不需要成爲天才也能理解這種簡單"由於GNU/Linux這個詞太長,下面如果沒有特別指明,"Linux"就是指GNU/Linux".在這個年代,恐怕沒有人需要我來介紹 Linux 是什麼了吧?如果你覺得"Linux只

原创 COM 學習筆記(一)

QueryInterface的實現規則的理解:1、組件的實例只有一個IUnknown接口。不管通過實例的哪個接口去查詢IUnknown接口時,所得到的均將是同一個指針值 。這樣做的目的之一就是保證組件實例所有接口有同一個入口。並且有一個好

原创 Ubuntu 8.04 Hardy Heron新風格樣版預覽

  早在兩個月前的Ubuntu 8.04 Hardy Heron開發藍圖中,我們都知道了,Ubuntu 8.04 Hardy Heron將會有全新的主題.這個全新的主題將是不是以往僅僅是換換壁紙就算了,而是