顯示具有 tool 標籤的文章。 顯示所有文章
顯示具有 tool 標籤的文章。 顯示所有文章

2017/7/9

clang簡介

昨天在練習c語言的時候,無聊的想查一下電腦的gcc版本是什麼,
使用的是 gcc --version 這個指令。
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.38)
Target: x86_64-apple-darwin16.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
一查才知道原來電腦裡裝的是另一個代替gcc的編譯器---clang

[ 關於clang ]
是一個C、C++、Objective-C和Objective-C++程式語言的編譯器前端。它採用了底層虛擬機(LLVM)作為其後端。它的目標是提供一個GNU編譯器套裝(GCC)的替代品。作者是克里斯·拉特納,在蘋果公司的贊助支援下進行開發,而原始碼授權是使用類BSD的伊利諾伊大學厄巴納-香檳分校開源碼許可。
Clang專案包括Clang前端和Clang靜態分析器等。

這個軟體專案在2005年由蘋果電腦發起,是LLVM編譯器工具集的前端(front-end),目的是輸出代碼對應的抽象語法樹(Abstract Syntax Tree, AST),並將程式碼編譯成LLVM Bitcode。接著在後端(back-end)使用LLVM編譯成平台相關的機器語言 。Clang支援C、C++、Objective C。
在Clang語言中,使用Stmt來代表statement。Clang程式碼的單元(unit)皆為語句(statement),語法樹的節點(node)類型就是Stmt。另外Clang的運算式(Expression)也是語句的一種,Clang使用Expr來代表Expression,Expr本身繼承自Stmt。節點之下有子節點列表(sub-node-list)。
Clang本身效能優異,其生成的AST所耗用掉的記憶體僅僅是GCC的20%左右。FreeBSD 10將Clang/LLVM作為預設編譯器。

[ 效能 ]
測試證明Clang編譯Objective-C代碼時速度為GCC的3倍,還能針對使用者發生的編譯錯誤準確地給出建議


來源 : wikipedia

-----------------------
註:
在stackexchange上面查到可以找出電腦gcc的指令(但不知是取自哪)
gcc -dumpversion | cut -f1,2,3 -d. 


我的是4.2.1 (改-fl後面的1,2,3可選擇顯示版本小數點數 如 -fl1 輸出為4)

2017/2/24

vim 基本指令

今天終於來學vim囉~
來分享一下今天學到的東西吧!




-
esc : command mode
i : text editor mode

< command mode中的游標控制 >
hjkl : 上下左右
^ : 到同一列最前面
$ : 到同一列最後面
G : 到最後一列第一個字
gg : 到第一列第一個字
dd : 刪掉一列(有cut的功能)
dw : 刪掉一個單字
u : 回復(undo)
y : 拷貝(yank)
yw : 拷貝一個單字
yy : 拷貝一列
p : 貼上


進階技巧 - 組合鍵:
數字+h/j/k/l : 可任意移動游標
d + ^ / d + $ : 從目前的地方刪到最前面/最後面
2yy : 拷貝二列
y + $ : 從目前的地方複製到最後面

...以此類推。




2017/1/11

用excel自製5x8 dot_matrix_editor


昨天電路學讀一讀突然想到,
要在LCD自創字元時要算16進位有點累,
特別是要一直修改的時候,
雖然網路上有很多類似的程式可以用,
但因為這種產生器還有很多種大小的版本,且有垂直掃描和水平掃描的方式,
所以要仔細尋找相容的,不然就要再另外自行修改。
懶人如我,當然想找一個可以用滑鼠點一點就可直接複製貼上的~
於是就打開excel做了一個介面頗陽春的計算器,
目前的輸出格式我還不太滿意,
因為我需要把","放在每組數字之間
但我還沒研究出該怎麼弄,好像要寫VB吧,等我休息一下再來研究囉!

昨天讀到快四點但還是沒讀完,
希望電路能過QQ
先睡囉