d語言是一門新興的語言,它試圖結合c/c++效能上的高效,同時又象python、ruby等「現代」語言那樣具備高效的生產力。csdn曾經對其做過專題報道。
我本人蠻喜歡d語言的語法,覺得當之無愧的簡潔典雅。當然需要澄清的是,我不想讓人誤會,我不是要倡導「c/c++已死,請使用d語言」。本文也沒有打算全面去討論d語言。這裡我只是把目光鎖定在d語言的template語法上。
我們先來看看c++中如何實現階乘。
1)用函式實現階乘:
intfactorial(
intn)
void
test()
2)用模板實現的階乘:
template
<
intn
>
struct
factorial
; };
template
<>
struct
factorial
<0
>;};
void
test()
再來看看d語言中的階乘。普通函式我們就不寫了,這裡列出d語言支援的兩套模板語法:
1)和c/c++類似的模板文法:
template factorial(
intn)
template factorial(
intn : 0
)void
test()
2)d語言引入的新型模板文法:
template factorial(
intn)
比較一下,我們不難理解,d語言對c++的模板文法主要做了以下2點改變:
1)將c++模板的
改為了!(t)。並將 factorial
::result 形式改為了 factorial!(n)。
2)引入了新的 static
if 文法。
引起我注意的是改變2)。很明顯,d語言在試圖讓寫模板的人思維方法可以象寫普通的函式那樣進行。這是乙個很有意義的嘗試。我們設想一下,如果c++ template也來支援 static
if 文法:
template
<
intn
>
struct
factorial
;else
enum;};
也許這會是乙個不錯的嘗試。
從D語言看C Template語法
d語言是一門新興的語言,它試圖結合c c 效能上的高效,同時又象python ruby等 現代 語言那樣具備高效的生產力。csdn曾經對其做過專題報道。我本人蠻喜歡d語言的語法,覺得當之無愧的簡潔典雅。當然需要澄清的是,我不想讓人誤會,我不是要倡導 c c 已死,請使用d語言 本文也沒有打算全面去討...
從D語言看C Template語法
d語言是一門新興的語言,它試圖結合c c 效能上的高效,同時又象python ruby等 現代 語言那樣具備高效的生產力。csdn曾經對其做過專題報道。我本人蠻喜歡d語言的語法,覺得當之無愧的簡潔典雅。當然需要澄清的是,我不想讓人誤會,我不是要倡導 c c 已死,請使用d語言 本文也沒有打算全面去討...
C語言從記憶體上看指標
從下圖知道指標也是有位址的 在來看指標與變數的的記憶體塊 紅線是指標的位址 藍線是指標指向變數的位址ps 我把變數賦了初值 從上圖可以看出指標的位址裡面的值為 00 fe 6f 00 h x86的指標大小是4 因為大小端問題要從高位址向下 所以指標的值應該是 00 6f fe 00 h 而指標位址裡...