原创 C++11的正則表達式基本用法

1. 介紹 正則表達式(Regular Expression,常簡寫爲regex、regexp或RE)。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。C++11開始支持正則表達式。 正則表達式非常強大,具體的實現算法有

原创 forfiles用法及示例

1. forfiles用法介紹 描述: 選擇一個文件(或一組文件)並在那個文件上執行一個命令。這有助於批處理作業。 語法: FORFILES [/P pathname] [/M searchmask] [/S] [/C

原创 C++字符串數字轉換以及字符串匹配處理

1. 字符串轉換爲數字 1.1. 簡單轉換 double atof(const char *string); double _wtof(const wchar_t *string); int atoi(const char *string

原创 關於靜態庫中使用全局變量可能導致的問題

同事找我看一個問題,一個訪問全局變量不符合預期的問題。 因爲新工程中靜態庫動態庫非常多,非常不利於分析問題。 再因爲並不是一個業務邏輯問題,而是一個語言層面的問題,所以我單獨抽象出產生問題的環境,簡化問題,更容易分析。 剛開始,是一個方案

原创 PDB文件詳解

PDB文件的介紹 PDB(Program Data Base),意即程序的基本數據,是VS編譯鏈接時生成的文件。DPB文件主要存儲了VS調試程序時所需要的基本信息,主要包括源文件名、變量名、函數名、FPO(幀指針)、對應的行號等等。因爲存

原创 字符編碼和字符集

 字符編碼 (Character encoding) 在存儲和傳遞文本過程中,爲了使得所有電腦都能夠正確的識別出文本內容,需要有一個統一的規則。 2.  字符集 (Character Set) ) 一般情況,一種編碼方式對應一種字符集。如

原创 C++模板常用功能講解

前言 泛型編程是C++繼面向對象編程之後的又一個重點,是爲了編寫與具體類型無關的代碼。而模板是泛型編程的基礎。模板簡單來理解,可以看作是用宏來實現的,事實上確實有人用宏來實現了模板類似的功能。模板,也可以理解爲模具行業的模型。根據分類,有

原创 C51和MDK的ROM大小及變量絕對地址初始化

1. C51的ROM大小 Keil編譯完之後,顯示的Program Size: data=9.0 xdata=8 const=15 code=180,則 The Total ROM(const + code + code-gap + c

原创 針對CPU的分支預測器優化代碼

1. 流水線(Pipeline) MCU/CUP的設計都會涉及到流水線,此處主要介紹AMD/Inter的PC計算機CPU的流水線。 所有的X86處理器都按照相同的模式運行。首先,根據指令指針指向的地址取得下一條即將運行的指令並解析該指令

原创 Windows下SVN通過Hook設置限制註釋及文件後綴名

1. 服務端更改 服務端做的更改適用於所有連接此倉庫的人員 - 在倉庫服務目錄裏有Hooks\pre-commit.tmpl文件,可將此文件更名爲pre-commit.bat,然後將文件下面的批處理代碼更改爲下列代碼。 - 在SVN服

原创 C++函數調用的反彙編過程及Thunk應用

x86彙編基礎知識 1. 彙編常用寄存器 esp,(Extended stack pointer)棧頂指針。因爲x86的棧內存是向下擴展的,因此當push入棧時,esp–。pop出棧時,esp++。esp主要維護當前棧。 ebp,(E

原创 C++數組概述

C++數組概述 基本概念 1. 數組是固定大小的一種複合類型 因爲數組是固定大小,所以在編譯期間就決定了基大小 數組的內存是連續(無論是一維數組還是多維數組) 2. 數組的特性 數組之間不允許拷貝和賦值 數組名是常指針 數組的

原创 Manifest文件詳解

Manifest是個XML的描述文件,對於每個DLL有DLL的Manifest文件,對於每個應用程序Application也有自己的Manifest。對於應用程序而言,Manifest可以是一個和exe文件同一目錄下的.manifest文

原创 Nand Flash的同步、異步、ONFI、Toggle

1. SDR和DDR SDR(Single Data Rate),寫讀數據使用上升沿或下降沿來觸發。因爲只用上升沿或下降沿,對信號準確性要求較低。 DDR(Double Data Rate),寫數據時通過MCU來控制DQS信號跳變沿來觸

原创 Windows下SVN引用外部鏈接

有時候一個大項目會引用很多外部公共項目。這個時候,會有兩種選擇方式。一,將大項目和公共項目放在一起,這樣更新的時候,就可以一起更新到了,不用擔心未同步。但是此方式面臨衆多工程累積在一個倉庫裏,導致倉庫的獨立性不夠,甚至上傳記錄的龐雜。二,