為了感性的評價c、c++、java,C#這幾種語言的效能,我做了了一下測試。請看下面測試成績表: 從我做的幾項測試看,在windows平台上,效能最好的依然是c/c++, 但是C#效能也不錯,比較接近C++了。效能差一點是java,但是也差不太多,Java在遞迴計算方面最佳化的非常好,成績甚至超過MinGW編譯的C和C++程式。但是java的效能要超過C和C++,從我的測試看,基本不可能。埃拉托色尼質數過濾演算法(Sieve of
我們用Visual C++ XXXX (XXXX代表2005,2008,2010等)編譯器編寫的應用程式,要使其能在沒有安裝Visual C++ XXXX編譯器的目標電腦上運行,必須在目標電腦上安裝對應的Microsoft Visual C++ XXXX運行庫。安裝後,將提供對C、標準C++、ATL、MFC、OpenMP以及MSDIA等類庫的運行時支援。例如:要運行Visual C++ 2008編寫的應用程式,需在目標電腦上安裝Microsoft Visual C++ 2008 SP1
C++中extern與static的用法很容易混淆,現總結如下:1.用於修飾全域變數的定義extern修飾全域變數的定義用於擴大全域變數的範圍,使其他檔案也可使用該全域變數static修飾全域變數的定義用於限定該全域變數只能在本檔案內使用我們知道每個.cpp檔案編譯後成為一個.obj檔案extern的作用就是使a.obj能使用b.obj中定義的全域變數static則限定b.obj中定義的全域變數只能在b.obj中使用,不能被a.obj使用。如:extern int a = 100;
關於IP Header Checksum的計算在RFC791中有比較完整的描敘, Header Checksum: 16 bitsA checksum on the header only. Since some header fields change(e.g., time to live), this is recomputed and verified at each pointthat the internet header is processed.The checksum
套用一個現在很流行的句式,(好多什麼編程之美或者代碼之美的)。我想看了第三章Modern C++ Design能感受的就是遞迴之美。而其中主要介紹的TypeList就是這樣一個遞迴演繹的完美的例子。其實TypeList本身的定義非常簡單。就是一個有Head有Tail的一個簡單的空的定義template struct Typelist { typedef T Head; typedef U Tail;
最近在寫代碼的時候總是發現在#include"windows.h"了以後經常用STL中的min.max函數出現編譯錯誤。但是自認為代碼是沒有錯誤的。下面就是相關的代碼: // testMacro.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <limits>#include <algorithm>#include "windows.h"int
這裡實際要說到的是一些散亂的比較tricky的概念。不想一一列舉了,但是有2個點想拿出來說一說。第一個就是typename,這個關鍵字用來告訴編譯器,後面緊跟的東西是一個類型而不是其他什麼東西。假定你有一個Map的類,需要有2個模板參數Key和Value。template <class K, class V> class Map{public: struct MapPair { K key; V value; }; MapPair
Object –Oriented ProgrammingUsing C++2005Chapter 1. Why Object-OrientedProgramming in C++• Object-Oriented Programming.• Why C++ is a Better C.• Encapsulation and Type Extensibility.• Construction of Objects.• Conversions, Operators, and