webrtc开发教程(webrtc开源项目)

【网络通信 -- WebRTC】WebRTC 源码分析 -- RTC_CHECK

【1】RTC_DCHECK(1 != 1) << "hello world " << 100 << 3.14;的执行过程

RTC_DCHECK(1!=1)<<"hello world "<<100<<3.14;的执行过程宏展开结果while(!(1!=1))FatalLogCall("main.cc",7,"1 != 1")&LogStreamer<>()<<"hello world "<<100<<3.14;注,根据运算符的优先级,<<运算符比&运算符优先级高,所以先算<<运算符

<< 运算符的运算过程

1. 先计算 LogStreamer<>() << "hello world ",LogStreamer<>() 生成临时对象,临时对象会调用 operator<<() 函数,operator<<() 函数会把 "hello world" 和临时对象作为参数,生成 LogStreamer 对象,该对象存储着 "hello world" 和临时对象2. 上一步生成的 LogStreamer 对象会继续调用 operator<<() 函数,同时把自己和 100 传入,生成一个新的 LogStreamer 对象,从而递归下去,直到所有的 << 运算符处理完毕

添加图片注释,不超过 140 字(可选)

& 运算符的运算过程

1. 上一步最后会返回 LogStreamer 对象,组成了新的表达式,FatalLogCall(main.cc, 7, 1 != 1) & LogStreamerFatalLogCall(main.cc, 7, 1 != 1) 会生成临时对象,临时对象会继续调用 operator&() 函数2. 在 operator&() 函数中会使用 LogStreamer 对象调用 Call() 函数,会产生递归调用,每次调用都会把本类保存的日志数据往下层传递3. 递归到最后,LogStreamer<>() 生成临时对象会调用 FatalLog() 函数,将所有日志数据打印出来

添加图片注释,不超过 140 字(可选)

整理了一些webRTC的视频和文档资料需要的伙伴私信【1】进群领取,包含一些必备的webRTC技术点

另外分享个宝藏免费视频网址,点进免费报名就可以直接学习的视频网址!我的宝藏链接​:【免费】FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发-学习视频教程-腾讯课堂

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:抒情文学网