2015年2月3日 星期二

makefile的四種等於 =, :=, +=, ?=


筆記一下makefile的四種等於的差異

雖然平常工作比較少從零開始寫markfile

但偶而還是需要修改一下既有的檔案

 

makefile總共有四種等於 先從最簡單的開始

  1. ?= 

這個是適用於想表達如果?=左邊的變數從未被設定過的話 就讓它設定成右邊的內容、數值

如果已經有值了 就不進行任何變動

  1. =

makefile官方文件中 使用=的時機是希望讓左邊的變數成為"recursively expanded variable"  也就是當變數真的被使用到的時候 在進行遞迴展開

所以就可以先定義 後續再補數值

以下提供一個例子

CFLAGS = $(include_dirs) -O

include_dirs = -Ifoo -Ibar

如果使用以上兩行的定義 CFLAGS真的要被使用時就會展開成 -lfoo -lbar -O  所以可以後定義、補充include_dirs的內容

然後這樣子的特性可能會帶來兩個壞處

第一個是有可能造成無限遞迴 以下就是一個例子 不過這個makefile會提示bug 所以倒也還好修正

CFLAGS = $(CFLAGS) -O

CFLAGS要被使用時會造成無限迴圈

另外一個壞處是跟效能有關的:

因為遞迴展開也適用於函式 所以函式的展開執行也會發生在變數要被使用的時候 也就是說如果變數要被重複使用幾次 函式就會展開跑幾次

所以效能就可能不太好

  1. := 

markfile官方文件中 使用:=的時機是希望讓左邊的變數成為"Simply expanded variable" 也就是當這一行敘述被執行時 就馬上進行展開

所以一旦跑完:= 就不再存在任何reference在變數中

  1. +=

最後一個是+= 用來增加敘述在原有已經定義的變數中

如果+=左邊的變數還沒定義過 +=執行的效果就會跟=一樣 也就是recursively-expanded variable.

如果變數曾經定義過 +=跑起來的效果就會視前一次定義是用=或者:=來決定跑完後是recursively-expanded variable或者是simply expanded variable

2015年2月1日 星期日

2015 mazda3 尊貴版駕駛心得

雖然說是尊貴版
但其實就是便宜的版本
不過撇開燈具 天窗等玩意不說
就駕駛起來的感覺 客觀上跟頂級唯一的落差應該只有輪胎

目前開了200公里
大概有以下的心得

  1. i-stop反應還蠻快的 但是有點不解為啥在兩個情況下會發車
    • i-stop啟動後 稍微晃到方向盤
    • i-stop啟動後 切入空檔 放開煞車 然後在輕踩煞車
    • 還有在方向盤轉一圈多以上的情況下不會啟動 這我也是蠻不解的
  2. 隔音不是很好尤其在高速公路上.... 這一點試乘時開太慢沒有感受到 可能在開一段時間在看看坊間有沒有店家推出好的改善方案吧
  3. 後座 後座 後座真的很窄 尤其是五人滿載會很痛苦 中間的人除了背部會被把手頂著外 連座椅的部份也都很不舒服.... 顯然這是一台以乘坐四人以下為目的的車
  4. 車子的彈跳感很重 雖然交車的時候我有再三詢問胎壓是不是有降到正確值 但實際上開起來 只有我跟老婆在的時候會覺得車子有點顛 但是三個人以上後就還好 可能要找個時間買胎壓計自己量測一下胎壓

優點的部份

  1. 動力真的還不錯 感覺變速箱調校的還不錯 超車反應蠻好的 但是高速時的轉速我本來以為可以在低一點 目前開100~110km/h時轉速大概都落在1900~2100之間 不知道是不是六速的極限了
  2. 駕駛視野不錯 相對於目前市場上蠻多車A柱都前移的流線造型 但是卻讓左右視野受到些影響 這一點mazda3就作得好多了 A柱的位子並沒有往前拉的感覺 讓左右視野不那樣侷促
  3. 油耗還不差 我兩百公里的移動包含車到港後的一些移動 所以一開始的平均數字還蠻慘的 但是開了兩百公里 高速:市區約莫7:3最後跑出7L/100KM的數字 在努力一下應該就可以做出送測的數字

整體而言 撇開載長輩容易被抱怨這一點以外
mazda3的安全性以及引擎科技 絕對值80萬左右的車價
這一台 沒有意外的話應該至少可以陪伴我們到有小孩而且小孩上小學以後閒後座窄吧xdddd

買了台車的心路歷程....

過去半年本來很想買間樓的 無奈台北 新北的房價始終高攀不起
看了數十間房 還是買不下手
後來想想 自己也不是很喜歡待在都市裡的人
不妨買台車 且戰且走 婚後多出去散散心
也許之後買間郊區房也說不定

在買車的時候
主要以安全為第一考量
想說Ford Focus JW, Subaru Impreza二選一好了
Focus是我在美國出差時開了一段時間的車 對她印象蠻好的
加上柴油省油的優點 本來是我的第一選擇
無奈遇到中太汽車的業務的印象實在太差 就只好放棄他了

放棄Focus後注意到新的Mazda3
就打算去Subaru後去Mazda瞧瞧
身邊有買WRX的同事對於四驅讚不絕口 讓我也想試試看他說的車像是吸在地上穩穩的感覺
不過最終還是因為偷懶沒去展示中心看車.... (Sabura的據點終究少了一點...)
反而在某次回家的路上去經過Mazda展間 看一看就覺得還ok
加上IIHS上的優異數據 (好像撞擊後駕駛 乘客受到的傷害控制得還不錯>.<)
試乘繞一小圈後覺得駕駛的視野也還ok 就訂車了

衝動買下去的原因是在我的預算內(80萬上下辦到好)又安全的車似乎只有impreza和mazda3
雖然不愛mazda3 2.0的稅金 但是我也不是很懂subaru為啥有1.6的車(據我所知 sabaru開發的應該是2.0起跳的引擎)
最後想想 mazda3是新改款 而impreza現在買的話應該沒多久就大改款
所以就直接訂mazda3

買車很隨性
但還是有點小遺憾的是沒買頂級版
到現在都還是蠻想要那組自動轉向HID頭燈唉.....
可是五門頂級版又會有天窗 讓後座壓迫超大
權衡之下還是訂了基本款

無論如何
跟老婆之間多了個第三者保護人生未來的旅程 還是蠻好的ccc