2012-01-07 34 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 2012-01-07 17:07:01

回答

4

這並不意味着任何特殊的宏的上下文。因此,像往常一樣,預處理器將宏體複製並粘貼到實例化的任何位置(除了宏參數和##等的替換)。

2

宏由預處理器處理; &將不會被觸及,因此最終代碼將看起來如像這樣:&gnd_clk.c