打印

谁能解释一下C99的复合赋值

[复制链接]
532|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
limee|  楼主 | 2020-4-16 12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码是出自于ffmpeg

static AVRational frame_rate;

// 下面两句C99的代码表示什么,网上搜索了,复合赋值,还是有点不大懂。

packet_time = av_rescale_q(avpkt->pts, AV_TIME_BASE_Q, (AVRational){1, 1000});

audio_enc->time_base= (AVRational){1, audio_sample_rate};


使用特权

评论回复

相关帖子

沙发
dirtwillfly| | 2020-4-16 21:22 | 只看该作者
C99中,复合赋值中,可以指定对象类型的数组、结构或联合表达式。当使用复合赋值时,应在括弧内指定类型,后跟由花括号围起来的初始化列表;若类型为数组,则不能指定数组的大小。建成的对象是未命名的。
  例: double *fp = (double[]) {1.1, 2.2, 3.3};
  该语句用于建立一个指向double的指针fp,且该指针指向这个3元素数组的第一个元素。 在文件域内建立的复合赋值只在程序的整个生存期内有效。在模块内建立的复合赋值是局部对象,在退出模块后不再存在。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

301

主题

475

帖子

0

粉丝