2009年11月27日 星期五

gcc 參數 筆記

## -c
只生成 obj 檔,並沒有產生執行檔。
例:gcc -c hello.c

## -o
生成執行檔,file name 沒指定時,預設檔名為 a.out。
例:gcc -o hello hello.c

## -llibrary
設定 link 時需便用的 library。
例:gcc -o hello -lhell hello.c,需要的 library 為 libhello.a。

## -Ldir
設定 link 時,查找 library 的路徑。
例:gcc -o hello -lhell -L. hello.c,會在源碼目錄內找尋 libhello.a 。

## -Idir
設定 compile 時,查找 include 的路徑。
例:gcc -o hello -I. hello.c,會在源碼目錄內找尋 include 檔 。

## -I-
取消前面所有 -Idir 的設定。

## -g
在執行檔中,加入 debug 訊息。

## -traditional
試圖讓編譯器支援傳統的C語言特性。

## -static
禁止使用動態 library。

## -share
儘量使用動態 library。

##
聯結數個 object 成可執行檔。
例:gcc test1.o test2.o -o test
將 'test1.o'、'test2.o' 和程式庫聯結後成為可執行檔 test。

=========== 最佳化參數 ================
## -O0
不作最佳化;然而若是之前有指定其它 LEVEL 的參數,將不會受到本參數的影響。

## -O1
初步最佳化,作最佳化的編譯當然會花費更多的時間和記憶體;未使用本參數前 GCC編譯的原則是減少編譯成本,而且各個階段的編連是各自獨立的--可以在任一階段停下來,重新指定變數內容,且各階段的結果和一般的狀況相同,完全符合正常的程序,然而本參數會以整體四個階段一起考慮,且本參數包含許多其它參數,目的就是要減少程式大小及執行時間;使用本參數同時會將-fthread-jumps和-fdelayed-branch開啟。

## -O2
更進一步最佳化,本參數可直接使用不需配合上一個參數,在本參數下除了「大小--速度」需犧牲一方的演算法外其於都會用來作最佳化處理,也就是除了 frame pointer elimination 和 loop unrolling 外其餘將會利用上;和上一個參數比起來本參數在編連時間和執行碼效能都更優越。

============================
接下來是許多和 CPU 構造有關的參數,它們的型態為 -fFLAG,大部份有相反詞,而相反詞為 FLAG 之前加上 no- 所形成。
============================
## -ffloat-store
"不要"將浮點變數儲存在暫存器中,而且抑制其它會改變從暫存器或記憶體所得浮點數之值的參數功能;本參數避免了一個現象,即浮點數的值無緣無故的加了好幾位小數出來,本來若將變數內容放在暫存器中,會比在記憶體中快上許多,這也是一般最佳化的方法之一,然而對許多主機例如 68000 來說其浮點暫存器所能容納的長度比 double 還長,這對一般程式來說無可厚非,然而對數值計算程式或是利 IEEE 浮點數的程式而言卻是"窩裡反"的行為,本參數就是避免這種情況發生。

## -fno-inline
忽略關鍵字inline的作用。

## -fno-default-inline
inline 這個關鍵字的作用是在呼叫此類函數的地方有著這個函數的程式碼存在,如此雖然程式變大了但執行速度也加快許多,當使用 -O 時物件中定義在 class 區域中的每一個成員函數都是以 inline 的型態處理,而本參數便是限定不要將這些成員函數視為 inline。

## -finline-functions
整合所有「簡單」的函數到呼叫它們的函數內,而「簡單」的標準由 GCC自行判斷;假如一個函數被整合到其它函數中,且其型態為 static,此函數當然不會有自己本身的輸出。

## -fkeep-inline-functions
本參數要和上一參數對照;縱然一 static 函數被整合到其它函數內,仍輸出執行時期可供呼叫的version。

## -fno-defer-pop
函數呼叫時其間傳入值和傳回值的傳遞是靠堆疊來完成的,一般情況下編譯程式會在堆疊之中累積一些argument後再一起 pop出去,這是為了速率著想,而本參數的作用便是不要作堆積,進一個便彈一個出去。

## -fforce-mem
強制 memory operands 在作運算前先 copy 到暫存器中以加快運算速度。

## -fforce-addr
強制 memory address 之內容在作運算前先 copy 到暫存器中以加快運算速度。本參數對於程式整體效率的提升比 -fforce-mem 還好,但這兩個參數並不適合任一機種。

## -fomit-frame-pointer
當函數用不到 frame pointer 時將它從暫存器中清除,本參數同時抑制了任何儲存、設定或回存frame pointer 的動作,這將使得更多的函數可利用暫存器以提升執行效率。

## -fno-function-cse
不要將函數所在位址放在暫存器中,這將使得每個呼叫函數的指令包含了函數位址,這會產生較沒效率的程式碼,但對於某些會改變 assembler 輸出的 hacks 來說,最佳化的過程會擾亂程式的行為,那時便需使用本參數。

## -ffast-math
本參數允許 GCC 違反某些 ANSI 或 IEEE 規則來作運算,這將使得執行速度加快,但對於運算程式等需依賴數值精密度作計算者則本參數不應和任何-O 參數共同使用,因為很有可能產生錯誤結果。

==============
前置處理器參數
==============
直觀來說前置處理器的作用為處理程式之中以 # 開頭的命令,這些命令於常見的有標頭檔的引入和定義常數及巨集等,可以說是在編譯之前的準備動作,有時也可用依某常數定義與否來決定那些程式片段是否要編譯,這對移植的工作有很大的助益,例如同樣要作到印出檔案名稱,在不同的 OS 和檔案格式上所得的結果就有蠻大的差異,在此就可分別寫不同的處理碼,然後再利用 #ifdef 等命令適機編連,不僅節省程式碼,還能加快速度;以下的參數,便是和前置處理時期有關者,而且許多參數需和 -E 配合使用。

## -include FILE
在編譯目標程式之前先編譯 FILE,而且 FILE 並無只能為標頭檔的限定,若是和 -D 及 -U 合併使用時以本參數為優先處理,當參數列中不只一個本參數及 -imacros 時依其順序執行。

## -imacros FILE
本參數和上一個參數幾乎相同,同樣都是在編譯目標程式之前先編譯 FILE ,所不同的是本參數會捨棄 FILE 的輸出,這使得FILE中唯有放置巨集定義才有作用。

## -idirafter DIR
將 DIR 內的路徑加至第二包含路徑中,當在主要包含路徑中找不到標頭檔時便可到第二來尋找,而主要包含路徑便是由 -I 所指定。

## -iprefix PREFIX
設定 PREFIX 之內容為 -iwithprefix 中之 prefix 預設值。

## -iwithprefix DIR
增加一個路徑到第二包含路徑中去,而這個路徑由 DIR 和 -iprefix 中的 PREFIX 之內容聯合組成。

## -iwithprefixbefore DIR
增加一個路徑到主要包含路徑中去,而這個路徑由 DIR 和 -iprefix 中的 PREFIX 之內容聯合組成。

## -nostdinc
不要在標準系統目錄下尋找標頭檔,只在目前目錄和 -I 所指定的目錄下尋找,因此這對於自行建立程式庫有幫助。

## -undef
不要預先定義任何非標準的巨集。相當於取消所有代碼中 #define。

## -E
作用為令 GCC 完成前置處理後便停止。展開程式中的巨集以便了解巨集是否依照預期方式展開,之後輸出到 stdout。
例:gcc -E test1.c > test1.c.ext

## -C
命令前置處理器不要捨棄註解部份,本參數需和 -E 共用。

## -P
命令前置處理器不要產生 #line 命令,本參數需和 -E 共用。

## -M
命令前置處理器輸出給 make 程式用的規則,內容為每個目的檔的依存規則,對於每個 source,前置處理器會將其 target 定為目的檔 (object),而其中所使用到的標頭檔便成為依存檔,有關本參數的最佳參考為 ~/linux下 Makefile 中 depend 這項依存規則的內容;另外一個如本參數功能的方法為設定環境變數 "DEPENDENICS_OUTPUT"。

## -MM
本參數唯一和 -M 不同之處在於輸出的規則中唯有使用者自定標頭檔(#include "FILE" 部份)才會列入,而系統標頭檔(#include 部份)並不會列入。

## -MD
作用如同-M一樣,然而在本參數會將規則輸出到和 .o 檔同檔名的 .d 檔中( -M 要用重新導向的方法),而 Mach utility 中的 "md" 可將各別的 .d 檔集合成可供 make 使用的依存檔。

## -MMD
為 -MM和 -MD功能的交集。

## -H
印出所使用的標頭檔。

## -DMARCO
定義巨集 MARCO 為字串 "1"; 相當於在代碼中加入 #define macro。

## -DMARCO=DEFN
定義巨集 MARCO 為 DEFN;相當於在代碼中加入 #define macro=value。此時所有的 -D 參數將比 -U 參數優先執行。

## -UMARCO
取消 MARCO的定義; 相當於在代碼中加入 #undef macro。此時 -U 還是比 -D 後執行,但卻在 -include 和 -imarcos 之前。

## -dM
命令前置處理器在前置處理完畢後列出所有有效的巨集名稱,本參數需和-E共用。

## -dD
命令前置處理器輸出所有的巨集定義內容。

## -dN
命令前置處理器輸出所有內定之外的巨集定義。

## -trigraphs
支援ANSI C trigraphs,本參數包含於 -ansi。

========
警告參數
警告是在編譯的過程中所發出的建議訊息,警告並非是錯誤,編譯後的程式仍可執行,不過警告的目的為指出某段可能會出錯的宣告方式語法,因此不可因不影響程式執行而掉以輕心;警告參數的目的為對某種語法提出(或抑制)警告訊息,以方便除錯或是順利執行,通常是以 -W 為開頭,這些參數的相反詞為加 no- 所形成,而不管是那種類型,都不是 GCC 的內定值。
========

## -fsyntax-only
只檢查程式之語法有無錯誤而不作編譯。

## -w
抑制所有警告訊息。

## -Wno-import
抑制所有和使用 #import 有關之警告訊息。

## -pedantic
依嚴格的 ANSI C 的標準發出警告訊息,並駁回任使用不允許擴充函數的程式。

## -pedantic-errors
作用如同 -pedantic,但除了警告外還會產生錯誤訊息。

## -W
對下列情況提出警告:
○一個 nonvolatile自動變數將被改成 longjmp 時,這種情況唯有作最佳化時才會發生。
○當一個函數可能有傳回值,也可能不傳回任何值時,例子如下:
foo (a)
{ if (a > 0) return a; }
○沒任何作用的 expression 敘述。
○一個 unsigned 數值和零比較大小時。
○如 'x<=y<=z'的表示式,此表示式 GCC會將其處理成 '(x<=y?1:0)<=z'以便程式能順利執行,當然這樣和原來想表現的意思差蠻多的。
○當 storage-class specifiers 如 'static' 並不是所有宣告中最先執行之時。

## -Wimplicit
當某函數或某參數 implicitly 宣告時提出警告。

## -Wreturn-type
當一函數內定傳回值為 int 時卻作別種型態的宣告便提出警告,或是當一函數無傳回值 (void),然而其中的 return 接一傳回值時便發出對 return 的警告。

## -Wunused
對某一 local 變數自宣告後便沒再使用、declare 一 static 函數後但未先 define、還有一段敘述算出一個結果,這個結果接下來卻未再使用等以上三種情況提出警告。

## -Wswitch
使用一列舉 (enum) 形態的變數為 switch 的 index 時,接下來卻缺少一個或以上的case作配合,或者是 case 的 label 超出了enum 中的選項時,便發出警告訊息,若是沒有必要列出每個 case 時可用default 代替。

## -Wcomment
當 '/* '符號 "又" 出現在註解中時。

## -Wformat
檢查 printf、scanf... 等函數其中第二個以後的參數型態是否和第一個字串中所寫有符合。

## -Wchar-subscripts
當陣列的註標 (subscript) 之型態為 char 時便發出警告,因為在某些主機上 char 為 signed。

## -Wuninitialized
當一自動變數未給予初值便使用時;如下的例子
{
int x;
switch (y)
{
case 1: x = 1;
break;
case 2: x = 4;
break;
case 3: x = 5;
}
foo (x);
}
這個例子看起來沒錯,因為只要 y為 1、 2或 3則 x都會有初值,但 GCC 對於這樣的寫法並不夠聰明到能看出 x 會有初值這件事,因此對 foo(x) 而言其中的 x 就出問題了,然而當未使用最佳化編譯時並不會有本警告出現。

## -Wparentheses
當 parentheses 在以下這些敘述中省略時:當預期將為 true value 卻有 assignment 時,或是有令人頭昏眼花的 nest operators 時。

## -Wenum-clash
當兩個不同的 enum 型態作轉換時。(C++ only)

## -Wtemplate-debugging
若是在程式中使用了模版 (template) 但除錯功能未完全支援時。(C++ only)

## -Wall
本參數為以上所有 -W 參數的總集,且本參數為最推薦使用者,因為以上的情況便包含了一般情況下該警告的事項。

接下來的這些參數並不包含於 -Wall之中,這些參數所要警告的為一些結構上的問題。

## -Wtraditional
對傳統和 ANSI C 的一些結構上的差異提出警告:
○ switch 的 operand 型態為 long。
○函數在 block 中宣告為外部(external)而後在 block 結束後使用。
○巨集的參數是位於巨集本體的字串內容中,這種情況對傳統 C 是允許的,但對 ANSI C 會有不相容發生。

## -Wshadow
當一區域變數 shadow 另一區域變數時。

## -Wid-clash-LEN
當兩個以上的辨別字 (identifier) 在開頭和 LEN 相同時。

## -Wpointer-arith
當使用 size of 在函數時。

## -Werror
Make all warnings into errors.
將所有警告轉換成錯誤,這會讓編連停止。

參考文件:http://jyhshin.pixnet.net/blog/post/26588012

http://www.cmlab.csie.ntu.edu.tw/~daniel/linux/cman/gcc.html
http://gcc.gnu.org/onlinedocs/

2009年11月14日 星期六

[心得] 博士術後第二天

其實很早就想做雷射了
因為是高度近視 眼鏡一直是我鼻子上的負擔
即使眼鏡已經配很好了 還是很容易因為眼鏡的重量造成頭痛

上上週五和上週三做完檢查後 就約了昨天下午兩點
說實在剛開始去的時候覺得自己都做好心理建設了 不太緊張

可是等啊等啊 等了一兩個小時候 才被叫進去聽丁醫師做術前教育
丁醫師說話又很.... 嗯 不知道怎麼形容
總之整個被弄得緊張起來了 哈哈

不過進去手術室之後也躺蠻久的 讓我又恢復平靜
一開始是一圈很亮 閃到你會瞎的白光的機器
基本上專心的中間的黑洞就好了

之後又躺了一會兒 換到看紅光的機器
在紅光的機器上 醫生先替我裝上撐眼器 然後再打深層麻醉
打麻醉針那種感覺.... 很像睫毛插進眼睛那樣 痛痛的 但也還好可忍耐

打完等幾分鐘後就開始做雷射 做的時候紅光會時大時小
所以要很專心的看著它

我近視較深 所以雷射好像40秒吧
中間除了聽到機器啪啪啪和一點燒東西的味道
基本上沒啥感覺

不過雷射完 眼皮開始被撐到有點痛
後來到蓋回角膜到休息室眼睛都一直蠻不舒服的 有點像眼睛裡面有沙子那樣的刺痛
輕輕閉上不要亂動的話算還ok 不會說痛到你一直想動來動去

回家後就照指示點眼藥水 然後閉眼休息
這個時候我是建議放個音樂來聽 不然很無聊
因為必須閉著眼睛然後又痛到睡不著

今天早上起來自己測一下視力 已經都有0.8了
不過還不是那麼穩定 我每隔幾個小時再測一次 有時候會0.7 有時候有1.0

到了今天,大部分不舒服的感覺大部分都消退了,剩下的狀況大概是
1. 怕光(一直戴著太陽眼鏡就還好)
2. 點人工淚液或眼藥水的時候會刺痛
3. 我的右眼右半部整個是鮮紅色的.....(不誇張 我早上看鏡子還嚇到)

如果第三點不能恢復我應該還是一直戴著太陽眼鏡吧XD
希望這些狀況能趕快恢復囉

ps.
真的蠻感謝Laser_eye板友們的分享讓我有勇氣去做
另外丁醫師的技術和服務態度也好到沒話說 只是說話有點....該說直嗎
總之如果他說什麼不好聽的 你自動忽略就好了 不要太在意XDD

2009年11月9日 星期一

[開箱+心得] Microsoft Wireless Mobile Mouse 6000 vs Logitech VX Nano

話說我以前是個三百塊滑鼠可以用兩年的人,
自從來鍵鼠板光顧之後,半年就花了將近三千塊在滑鼠上
而且這種程度應該還算中毒淺的吧XD

由於最近開始滑鼠使用頻率升高,開始覺得手腕有點不舒服
主要是那隻三百塊的滑鼠dpi似乎過低,
指標移動速度調最大還是要拉很遠,
而且又常常被線卡住,常常必須得把滑鼠舉起來再拉第二次
終於忍不住去敗滑鼠

這次下手的是 MS 6000,至於 VX Nano 是前一陣子買來送人的,
想說就把兩支拿來做個比較

先介紹之前買的 Logitech VX Nano
(這裡沒有開箱,因為箱子已經不知道跑去哪了)

首先我覺得有附保護袋真是非常貼心


保護袋的另外一邊,那個橘色不知道有什麼作用,
不過遠看的時候黑中一點橘,多少增添了一份質感


滑鼠本身


滑鼠背面,那個畫有電池的是電池蓋的推桿,一推電池蓋就會彈開,非常方便


電池蓋打開,裡面是兩顆四號電池 + 接收器收納空間,紅色按鈕按下去接收器就會彈起來


接下來貼 MS 6000 的圖,先看外觀,等下再寫兩者的比較。

昨天剛買,所以有開箱


拆開的過程就大同小異(非常暴力,還是不要拍照留下我對他家暴的證據XD)
直接看內容,說明書、光碟有的沒的,那個接收器因為我看 Nano 習慣了,所以沒啥感覺


說實在的,他並不適合入鏡,身上鏡面太閃讓我糊調好幾張相片


背面照


開個藍光,他的藍光發光點漫裡面的



側面照


呼,傳圖有點累....
其實網路上很多拍的更好的照片,我想以我這麼糟的照相技術來說沒必要貼太多圖

接下來就來講講兩者的比較
以下用6000和nano代表 Microsoft Wireless Mobile Mouse 6000 、 Logitech VX Nano

首先,看外觀
6000的鏡面很容易有指紋,摸起來會油油的,另外他側邊的橡膠,感覺是很容易變黏的那種
nano相較之下外觀我是比較喜歡,主要是他旁邊的橡膠摸起來比較有質感,按鍵部分的霧面觸感也較好

另外就是nano有附保護袋,以搭配筆電來說,這個小舉動帶來非常大的便利性
尤其是那6000的鏡面外觀感覺隨便亂放在包包裡很容易全身刮痕

背面的比較上
nano的電池蓋是用推桿推開會自動彈出來
6000則是比較一般的電池蓋

nano的接收器收納處在電池蓋裡面,6000則是在外面,
兩者的接收器都是按鈕彈跳式的取出方式,很好拿

另外不得不提的就是,雖然兩者背面都有手動開關
但是nano在接收器收納進去會自動關閉電源,
6000則不會,我是覺得非常可惜,明明就是很簡單一個功能卻沒有做

6000吃一顆三號電池,nano吃兩顆四號
拿起來我個人覺得6000會略重一些,這個輕重可能就看個人喜好
我個人是喜歡輕巧一些的

接下來談他們所附的軟體,
我之前就有看人分享過說微軟滑鼠附的非常沒有誠意
那時候我還不太懂沒有誠意的意思
等我裝完之後,我瞬間明白了
微軟附的滑鼠軟體,
就只是在原本OS的滑鼠設定那邊多加了幾個東西而已....

因為我通常用不同滑鼠第一件事情就是會去調指標移動速度
結果他只是用作業系統裡面的那個而已,並沒有自己再多做一個XD

最後講一個比較重要的,精準度
再這裡我順便想問一個我長久以來的疑惑,
羅技的指標加速設定和微軟作業系統裡的增強指標的準確性設定,
到底各式什麼樣的機制?

nano這支我如果把指標移動速度調高,不勾增強指標的準確性,
會常常點不到我要的東西,不知道是不是我辦公桌有點光華的關係
有時候會飄,指標加速的話開低是還好,中高我就常常點不太到東西

6000相較來說,不太需要勾增強指標的準確性這項,
我覺得精準度相對上是比較高(在我辦公桌上實驗是如此)

6000我只要把指標移動速度調到最快,不勾增強指標的準確性
我就覺得很好用了
nano的話就必須多花一點時間調整,才會感覺比較順手
不過相對來說nano選項是比較多
因為他自己的軟體也有指標移動速度和指標加速
OS裡面又有指標移動速度和增強指標的準確性

整體比較的話,我覺得是兩種孑然不同的感覺
也不是說哪一支就比較好,畢竟價格也不一樣,我買的時間點也不太一樣
而且nano的後繼者也已經出來了 - Anywhere

不過兩支對我來說都已經是很不錯的滑鼠了
謝謝收看!

[開箱] TOUGH MR2

之前用的皮夾壞掉了,想說去西門町逛逛找尋適合的皮夾
突然看到一個我很喜歡的類型 TOUGH中間有可分離零錢袋的系列
問了一下價格 什麼!28xx!

皮夾價值比皮夾裡面現金還多絕對不是我的風格....
所以就放棄了

回家上網找了一下,發現有不少一張小朋友以內的TOUGH

最後挑了這款 MR2
為什麼呢?我想先看照片比較容易解釋這個問題

盒子


盒子高度


拿出來,嗯,很普通嘛!


打開來,也很普通....


上面有放鈔票的夾層和一個放零錢的大拉鍊層


拉鍊打開還漫大的


最後一張,尾巴照


整體外觀來說中規中矩,
除了裡面有一個放SD卡的地方是和其他品牌較為不同的部分

另外大拉鍊的零錢袋是還漫好拉的,只是有一個缺點
就是零錢會在裡面跑來跑去,
有時候剛好在中間的時候你皮夾可能闔不起來,要喬一下
(有人懂我在說什麼嗎....)

好,結束!

要是這樣結束的話,會被噓到爆吧....XD
沒什麼特色的東西也敢拿出來

既然是特地拿出來分享,當然有他不一樣的地方囉!
還記得他的正面嗎

其實這裡是暗藏玄機的,鈕扣打開有片東西可以拿下來


嗯,這是什麼?


整個把他拿出來(有點像皮包裡面藏暗器的感覺)


對照一下說明書


1. 可以凹折金屬線的洞
2. 開瓶器
3. 尺
4. 六角螺絲起子
5. 平口螺絲起子
6. 小鋸子
7. 小刀子
8. 開罐器
9. 我看不太懂....反射器?怎麼用?

另外照一下其他附件

說明書 + 商標卡 + 皮製的大Logo卡


其中大Logo卡背面有可以放記憶卡 sim卡之類的空間


買這個皮夾主要就是看上他有附暗器可以隨時殺人於無形(誤)
感謝收看!

2009年11月4日 星期三

[開箱] G-SHOCK GW-9200MBJ


以前曾經有一陣子非常喜歡金屬錶,覺得配戴起來閃閃亮亮的很炫,
不過當需要長時間在辦公室敲電腦之後,突然發現錶的重量真的是不小的負擔

前一陣子還發生邊走路邊戴錶(那時要從辦公室走出去吃午餐)
結果手錶不小心滑落,而且好死不死就這麼剛剛好掉在電梯縫裡面,
(沒錯,就是這麼剛好,同電梯的全部一起驚呼)
這一掉就是7樓掉到B3,雖然有拿回來,但想也知道結果只是幫他收屍而已 Orz

於是開始計畫要買新的表,網路上看了好幾天,
終於決定要買電子錶(重量輕功能又不少),
最後終於看上這款太陽能電波時計而且可以測溫度、高度、氣壓的卡西歐
(小弟平常假日會去爬山)

主要看上他62g且功能剛好符合我需求,決定之後,便前往板上推的兩大名店,
其中一家跟我說幫我調調看,但是要多久不知道,
另一家店在不知道打了多久的電話(不知道是問廠商還是其他店家?),
給我的答案竟然是,這是日本限定版,台灣買不到....

失望之餘,回家繼續翻網路購物和拍賣,終於找到有兩家有在賣的
雖然價格是偏高,不過有現貨,
而且還可以十二期免息分期(不過就幾千塊還分十二期XD),
加上我又很想要所以就敗了....

昨天終於收到了,於是拍了幾張照片(桌子很亂抱歉....)

左邊是紙盒,右邊是鐵盒子


打開後裡面包裝的還算穩固


這是還沒拆下保護膜的樣子(因為很難拍到畫面,所以亮度調的很暗)


好啦,幫你拍幾張帥一點的照片(認真)




最後來發表一下心得,整體帶起來重量還蠻輕的,
功能很多,除了剛剛提到的測量功能之外,
還有一個光線不夠時看錶他會自動冷光的功能(auto el),
我覺得漫實用的,

溫度、壓力和高度的測量方面,畢竟我也不是專業的,所以準不準我也看不出來,不過看起來似乎滿正常的
這隻錶是我有生以來買過最貴的錶,雖然跟板上的其他牌子相比,卡西歐只是入門款吧....

不過我有點衝動,再多等一點時間可能就可以更低價買到....
日本卡西歐官網是九月初的款,可是台灣卡西歐網站竟然在我訂了之後沒多久就有資料
(我星期一去某名店他就是當場翻給我看台灣卡西歐網站查不到,就跟我說這代表台灣沒進貨)

心得分享至此,感謝收看!