首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

构造复合字面值做函数参数

2013-03-06 
结构复合字面值做函数参数?本帖最后由 GioPna 于 2013-02-26 11:15:07 编辑《C语言程序设计 现代方法》 16.2

结构复合字面值做函数参数?
本帖最后由 GioPna 于 2013-02-26 11:15:07 编辑 《C语言程序设计 现代方法》
 16.2.4  复合字面值

 


 print_part((struct part){528,"Disk drive",10});
 

  
 上面的复合字面值创建一个part结构,依次包括528,"Disk drive"和10。这个结构之后被传递到print_part显示。

----------------------------

 书本的函数:print_part()

 函数调用时用复合字面值,但是,这个复合字面值没有结构变量:p.
 函数定义时有个结构变量p。这样对么?

 完整的程序是怎样?
 
[解决办法]
大概就是LS的这个意思

比如有void foo(int x) { ... }这样一个函数。
我们可以定义一个变量int a = 1;
然后这样调用它foo(a)
当然,我们也可以直接这样调用foo(1),这样就可以少定义一个变量。

然后放到struct的情形
比如有struct bar { ... };
然后有函数void foo(struct bar x) { ... }
注意对于早期的C,必须得定义一个变量,即strcut bar a;然后调用函数foo(a);

现在则不一样了,有了这种新语法之后,可以直接调用foo((struct bar){...}),就好象上面的“字面量”1一样。

热点排行