2014/06/07

用 Eclipse 寫 C/C++

要在Eclipse的環境底下寫C/C++,需要安裝CDT(Eclipse的C/C++ plugin)以及C/C++ compiler

1.下載 MinGW 並且把它裝起來,完成之後打開MinGW Installer勾選Basic Setup裡面的項目安裝

2.把C:\MinGW\bin加到環境變數path的最前面
   如何加入Windows環境變數

3.打開Eclipse,在Help -> Install New Software,找到Work with欄項填入對應所使用Eclipse版本的p2 software repository 把所有出現的項目打勾之後同意安裝

基本上這樣就完成Eclipse的C/C++設定
開一個新的C/C++Project來測試是否能正確運作
在project選擇compiler的地方,記得要選所安裝的MinGW GCC
程式碼完成要run之前,必須先build,可以使用快捷鍵ctrl + b

詳細的圖文設定可以參考:
使用 Eclipse 開發 C 及 C++ ( CDT + MinGW )

p.s MinGW安裝過程畫面可能跟上面網站不一樣


Eclipse + CDT提供另外一個C/C++ IDE的選擇
不過就硬體需求和效能上來講 Code Block 會比較好,而且compiler可以調整的選項也比較多


2014/05/02

[轉]系統時間定義從1970年原因

最初計算機操作系統是32 位,而時間也是用 32 位表示。

System.out.println(Integer.MAX_VALUE);
2147483647



Integer在 JAVA 內用 32 位表 示,因此 32 位能表示的最大值是 2147483647。 另外1 年 365 天的總秒數是 31536000,

2147483647/31536000 = 68.1

也就是說32 位能表示的最長時間是 68 年,而實際上到 2038年 01 月 19 日 03 時 14 分 07
秒,便會到達最大時間,過了這個時間點,所 有 32 位操作系統時間便會變 為
10000000 00000000 00000000 00000000

也就是1901年 12月 13 日 20時 45 分 52 秒,這樣便會出現時間回歸的現象,很多軟體便會運 行異常了。

到這裡,我想問題的答案已經出來了:

因為用32 位來表示時間的最大間隔是 68 年,而最早出現的 UNIX 操作系統考慮到計算
機產生的年代和應用的時限綜合取了 1970 年 1 月 1 日作為 UNIX TIME 的紀元時間 ( 開始
時間 ) ,而 java 自然也遵循了這一約束。

至於時間回歸的現象相信隨著64 為操作系統 的產生逐漸得到解決,因為用 64 位操作
系統可以表示到 292,277,026,596年 12月 4 日 15時 30 分 08 秒,相信我們的 N 代子孫,哪
怕地球毀滅那天都不用愁不夠用了,因為這個時間已經是千億年以後了。

最後一個問題:上面System.out.println(new Date(0)),列印出來的時間是8點而非0點,
原因是存在系統時間和本地時間的問題,其實系統時間依然是0點,只不過我的電腦時區
設置為東8區,故列印的結果是8點。

節錄自:
http://www.010cnc.net/subject/about/java%E7%82%BA%E5%95%A5%E8%A8%88%E7%AE%97%E6%99%82%E9%96%93%E5%BE%9E1970%E5%B9%B41%E6%9C%881%E6%97%A5%E9%96%8B%E5%A7%8B.html

2014/04/08

Graphics.h In Code::Blocks

1. Download the pack: Graphics
2. Extract Graphics.rar and
    Copy the file "graphics.h" to "C:\Program Files (x86)\CodeBlocks\MinGW\include"
    Copy the file "libbgi.a" to "C:\Program Files (x86)\CodeBlocks\MinGW\lib"

3. In CodeBlocks, Choose "Settings" -> "Compiler"
   Then, in the  tag "Linker settings", choose "Add" and add "C:\Program Files (x86)\CodeBlocks\MinGW\lib\libbgi.a"
 
    Next, add "-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32" to Other linker options at right.

4. Create a  C++ project, and use the code below to test if it works.

4/17 update
Show chinese character in console
Settings -> Compiler -> Other options
Add -fexec-charset=BIG-5