原创 c++指針比較的含義

在c++中,一個對象可以有多個有效地地址,因此,指針比較並不是關於地址問題,而是關於類的判別 (object identity)。    class Shape {.......};    class Subject {......

原创 數組/枚舉 初始化最後一個逗號的問題

http://bbs.csdn.net/topics/330052999 以下是從MSDN中copy出來的一段,其實就是形式語法的規定,加不加都是可以的。注:其實原來我是不加的,後來我有看Linux下的源碼,然後也發現了這個問題,後來有

原创 Win7+vs2010下安裝boost_1_46_1庫

一、boost庫分類: (1)不需要編譯庫:any、array、asio、conversion、crc、bind/mem_fn、enable_if、function、lambda、mpl、smart_ptr... (2)需要編譯的庫

原创 內存關卡/柵欄 ( Memory Barriers / Fences ) – 譯

翻譯自:Martin Thompson – Memory Barriers/Fences 在這篇文章裏,我將討論併發編程裏最基礎的技術–以內存關卡或柵欄著稱,那讓進程內的內存狀態對其他進程可見。 CPU 使用了很多技術去嘗試和適應

原创 Ubuntu下編譯boost1.47

首先ubuntu默認沒有安裝g++,所以先安裝g++最新版本 sudo apt-get install g++ 下載boost的最新源代碼,在boost.org上。 將其解壓在任意文件夾。 爲了更完整的編譯boost,需要下載額外的軟件

原创 Mutex和內存可見性

原文鏈接  作者:Loïc  譯者:林永聽 介紹 POSIX線程遵守共享內存模型[1],此模型各線程可以訪問一組共享對象。多個併發的線程需要協同訪問共享對象。爲此該模型引入了以下兩個屬性來簡化程序設計: 原子訪問:避免線程在訪

原创 C,C++宏中#與##的講解

文中__FILE__與示例1的可以參見《使用ANSI C and Microsoft C++中常用的預定義宏》 宏中的#的功能是將其後面的宏參數進行字符串化操作(Stringizing operator),簡單說就是在它引用的宏變量的

原创 還是說Memory Model,gcc的__sync_synchronize要慎用。

當我們在做多線程編程的時候,會涉及到一個稱爲memory order的問題。 例如 int x(0),y(0); x=4; y=3; 請問,實際執行的時候,這兩條賦值語句誰先執行,誰後執行? 會不會有某個時間點,在某個CPU看來

原创 git branch

查看分支:        $ git branch    該命令會類出當先項目中的所有分支信息,其中以*開頭的表示當前所在的分支。參數-r列出遠程倉庫中的分支,而-a則遠程與本地倉庫的全部分支。創建新分支:        $ git br

原创 gcov、lcov與genhtml 使用心得

gcc是linux平臺下的C、C++ 編譯器 gcov是配合gcc產生覆蓋信息報告的工具; lcov是將gcov產生的報告信息,以更直觀的方式顯示出來工具 基本的使用方法分爲4個階段: (一)、gcc編譯:產生插裝後的目標文件t

原创 linux 文件夾的顏色代表什麼意思

藍色表示目錄; 綠色表示可執行文件; 紅色表示壓縮文件; 淺藍色表示鏈接文件; 灰色表示其它文件; 紅色閃爍表示鏈接的文件有問題了; 黃色是設備文件,包括block, char, fifo。 用dircolors -p看到缺省的顏色設置,

原创 代碼實現WordPress歸檔頁面模板

前幾天我在自力博客看到 hzlzh 寫的《WordPress歸檔頁面模板,按日期列出所有文章》,在本地測試了一下,代碼量很少,但每次訪問存檔頁面數據庫查詢量太大導致打開頁面很慢,於是放棄。 昨天幫一朋友修改一私人模板,發現裏面有個函數

原创 [Github] fatal: remote error: You can't push to git 解決辦法

branch正確的情況下, 不知爲什麼,在push的時候總是出現: [plain] view plaincopyprint? fatal: remote error:   You can't push to git:/

原创 Linux升級GCC清晰簡明教程

前言:   這次我在Ubuntu 12.04 LTS 64位版上更新gcc,發現了原來的一些問題,這次沒有什麼時間上的壓力,我比較認真地去查閱了官方文檔,也參考了一些網上的帖子,對整個升級過程在依賴包的安裝、不同Linux流派、32

原创 PROC系列之---/proc/pid/stat

 /proc/ /stat包含了所有CPU活躍的信息,該文件中的所有值都是從系統啓動開始累計到當前時刻。[root@localhost ~]# cat /proc/6873/stat6873 (a.out) R 6723 6873 672