Time of Update: 2018-12-03
windows平台上編譯64位程式變數類型大小變化:類型 用32位編譯的大小 用64位編譯的大小char 1 1short 2 2int 4 4long 4
Time of Update: 2018-12-03
有時候我們在寫伺服器端的程式的時候,經常需要用到日誌,這幾天在做些事情的時候,發現居然還沒有我自己經常使用的一個日誌類,正好現在又找到一個非常不錯的日誌類,所以把他記錄下來,留待以後直接拿來用就可以了:Log.h////////////////////////////////////////////////////////////////////////#if !defined(__TEST_LOG__INCLUDED_)#define __TEST_LOG__INCLUDED_#if
Time of Update: 2018-12-03
Item 45: 用 member function templates(成員函數模板) 接受 "all compatible types"(“所有相容類型”)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/smart pointers(智能指標)是行為很像指標但是增加了指標沒有提供的功能的 objects。例如,Item 13 闡述了標準 auto_ptr 和 tr1::
Time of Update: 2018-12-03
集12個main為一身的C程式竟然也能運行,而且可移植性為100% 作者:張桂權 這樣的程式竟然也能運行,不是一個工程只能包含一個main嗎? 沒想到吧 ! 什麼事情都有可能發生,而且這樣的事情還多著呢? 如果你只是被它的結構迷惑,那沒關係,不過…… 程式的運行結果可能會讓你更加吃驚了…… 結果是什嗎?編譯運行一下你就知道了。 這不得不讓我想起“The Tao of Programming”中的一句話“編程大師的程式再淩亂,也用不著測試,因為它是正確的”。
Time of Update: 2018-12-03
再談C語言中數組和指標之間的互操作 作者: 張桂權
Time of Update: 2018-12-03
Item 1: 將 C++ 視為 federation of languages(語言聯合體)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/最初,C++ 僅僅是在 C 的基礎上附加了一些 object-oriented(物件導向)的特性。C++ 最初的名稱—— "C with Classes" 就非常直觀地表現了這一點。作為一個語言的成熟過程,C++
Time of Update: 2018-12-03
&&是邏輯運算子,&是位元運算符&和|可以進行邏輯運算也可進行位元運算,&&,|| 兩邊只能是bool類型&,| 兩邊可以是bool類型或者是數實值型別區別:if (A && B) 如果 A 為 false ,整個運算式就為 false,不再計算 B 的值了。if (A & B) 如果 A 為 false ,整個運算式就為 false,但還要計算 B 的值。if (A && B++) 如果A
Time of Update: 2018-12-03
目錄結構記憶體池簡介 介紹分析記憶體池改進及所使用技術 如何配合STL容器 效能測試 如何使用 記憶體池簡介:關於記憶體池的介紹,好文很多(這裡,這裡,這裡,還有這裡…)。在如今的PC機器上,記憶體池的作用也沒有那麼明顯了,作業系統對記憶體的管理已經相當不錯。但,為什麼還需要記憶體池呢?兩點:1. 減少記憶體管理負擔,提升效能。(比如,在進行密集型演算法前申請足夠記憶體記憶體,然後使用,最後統一釋放) 2.減少分頁錯誤(分頁錯誤是由虛擬記憶體與實體記憶體交換導致的),減少記憶體片段,提高效能。
Time of Update: 2018-12-03
簡介:什麼是序列化?簡單來說,序列化就是將對象執行個體的狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是還原序列化,它根據流重構對象。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料。對象序列化還原序列化通常用於:1. 將Object Storage Service於硬碟上2.
Time of Update: 2018-12-03
接下來是第六章的一道習題,要求實現一個binary_tree_inserter,以使用mpl::copy演算法從其它序列產生一棵二分尋找樹(Binary Search Tree,即滿足以下條件的一種二分樹:左子樹所有元素小於根,右子樹所有元素大於根,且左右子樹全都是二分尋找樹)。習題中給出的測試代碼如下:typedef mpl::copy< mpl::vector_c<int,17,25,10,2,11> , binary_tree_inserter<
Time of Update: 2018-12-03
Item 52: 如果編寫了 placement new,就要編寫 placement delete作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/在 C++ 動物園中,placement new 和 placement delete 並不是最常遇到的野獸,所以如果你和它們不熟也不必擔心。作為替代,回想一下 Items 16 和 17,當你寫下一個這樣的 new
Time of Update: 2018-12-03
調用(calling)機制從彙編時代起已經大量使用:準備一段現成的代碼,調用者可以隨時跳轉至此段代碼的起始地址,執行完後再返回跳轉時的後續地址。 CPU為此準備了現成的調用指令,調用時可以壓棧保護現場,調用結束後從堆棧中彈出現場地址,以便自動返回。借堆棧保護現場真是一項絕妙的發明,它使調用者和被調者可以互不相識,於是才有了後來的函數和構件,使吾輩編程者如此輕鬆愉快。若評選對人類影響最大之發明,在火與車輪之後,筆者當推壓棧調用。
Time of Update: 2018-12-03
位元運算 位元運算的運算分量只能是整型或字元型資料,位元運算把運算對象看作是由二進位組成的位串資訊,按位完成指定的運算,得到位串資訊的結果。位元運算符有: &(按位與)、|(按位或)、^(按位異或)、~ (按位取反)。 其中,按位取反運算子是單目運算子,其餘均為雙目運算子。 位元運算符的優先順序從高到低,依次為~、&、^、|, 其中~的結合方向自右至左,且優先順序高於算術運算子,其餘運算子的結合方向都是自左至右,且優先順序低於關係運算子。 (1)
Time of Update: 2018-12-03
有兩個簡單法,其一:不讓用TryParse,那自寫一個唄:using System;class test{static void Main(){string s1=Console.ReadLine();int i;if(myTryParse(s1,out i)){Console.WriteLine("成功:"+i);}else{Console.WriteLine("失敗:請輸入數字!");}}static bool myTryParse(string s,out int i){try{int
Time of Update: 2018-12-03
以前在LINUX環境下,想輸入密碼(關閉回顯)時都是用getpass函數,今天無意中看到手冊上說:This function is obsolete. Do not use it. 那我就自己實現一個類似的功能吧(功能相同,原理不同)程式的思路很簡單:關閉回顯,讀取輸入,恢複設定。上代碼:#include <stdio.h>#include <stdlib.h>#include <termios.h>#include
Time of Update: 2018-12-03
Time of Update: 2018-12-03
ini檔案格式:;注釋[節名]鍵=值...// 讀取ini檔案中特定項的值char * GetInitKey(char *pFilename, char *pSection, char *pKey){ static char retstr[1024]; int nFlag = 0; char tmpLine[1024]; FILE *pFile; pFile = fopen(pFilename, "r"); if (pFile == NULL) { return NULL; } while (
Time of Update: 2018-12-03
我常常在想,為什麼我看別人的代碼是如此的彆扭?為什麼我看昨天自己寫的代碼也是如此醜陋?為什麼我又忍不住要重寫同樣功能的類呢?難道我是程式員中的孔乙己,一輩子就折騰字串類的四種寫法?我苦苦思索,於是就有了一個夢想:
Time of Update: 2018-12-03
功能很常用,代碼很簡單,就不多作解釋了,直接上代碼。#include <stdio.h> #include <string.h> #define MAXLEN 10240 //讀取檔案filename的內容到dest數組,最多可以讀maxlen個位元組 //成功返迴文件的位元組數,失敗返回-1 int read_file(const char *filename, char *dest, int maxlen) { FILE *file; int pos,
Time of Update: 2018-12-03
以下這個小程式實現這個功能。上代碼:#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <errno.h>//程式發生了嚴重的錯誤,輸出void error_quit(const char *str){fprintf(stderr, "%s\n", str);exit(1