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宏的作用,但是&符号在宏中意味着什么?是否与在变量前放置&符号相同?
答案 0 :(得分:4)
在宏的上下文中并不意味着什么特别。
与往常一样,预处理器将宏主体复制并粘贴到实例化的任何位置(除了替换宏参数和##
等)。
答案 1 :(得分:2)
宏由预处理器处理; &
将不会被触及,因此最终代码将会显示为像这样:&gnd_clk.c