2012-01-07 26 views
0
2347 #define F_GFX3D(f, s, m, n) \ 
2348   { \ 
2349     .freq_hz = f, \ 
2350     .src_clk = &s##_clk.c, \ 
2351     .md_val = MD4(4, m, 0, n), \ 
2352     .ns_val = NS_MND_BANKED4(18, 14, n, m, 3, 0, s##_to_mm_mux), \ 
2353     .ctl_val = CC_BANKED(9, 6, n), \ 
2354     .mnd_en_mask = (BIT(8) | BIT(5)) * !!(n), \ 
2355   } 
2356 static struct clk_freq_tbl clk_tbl_gfx3d[] = { 
2357   F_GFX3D(  0, gnd, 0, 0), 
2358   F_GFX3D(27000000, pxo, 0, 0), 
2359   F_GFX3D(48000000, pll8, 1, 8), 
2360   F_GFX3D(54857000, pll8, 1, 7), 
2361   F_GFX3D(64000000, pll8, 1, 6), 
2362   F_GFX3D(76800000, pll8, 1, 5), 
2363   F_GFX3D(96000000, pll8, 1, 4), 
2364   F_GFX3D(128000000, pll8, 1, 3), 
2365   F_GFX3D(145455000, pll2, 2, 11), 
2366   F_GFX3D(160000000, pll2, 1, 5), 
2367   F_GFX3D(177778000, pll2, 2, 9), 
2368   F_GFX3D(200000000, pll2, 1, 4), 
2369   F_GFX3D(228571000, pll2, 2, 7), 
2370   F_GFX3D(266667000, pll2, 1, 3), 
2371   F_GFX3D(320000000, pll2, 2, 5), 
2372   F_END 
2373 }; 
2374 

F_GFX3Dマクロの機能を理解しようとしていますが、アンパサンドの意味は何ですか?変数の前にアンパサンドを置いたときと同じですか?Cマクロのアンパサンド

+0

ニース例:このように。 – ugoren

答えて

4

これは、マクロのコンテキストで特別なことを意味するものではありません。

したがって、プリプロセッサはマクロ本体をインスタンス化された場所(マクロ引数と##などの置換以外)にコピーして貼り付けます。

2

マクロはプリプロセッサによって処理されます。 &には触れないので、最後にコードは次のようになります。マクロを使用しない理由の&gnd_clk.c