|在gestremer matroska demux插件中有这个功能:
gboolean
gst_matroska_demux_plugin_init (GstPlugin * plugin)
{
/* parser helper separate debug */
GST_DEBUG_CATEGORY_INIT (ebmlread_debug, "ebmlread",
0, "EBML stream helper class");
/* create an elementfactory for the matroska_demux element */
if (!gst_element_register (plugin, "matroskademux",
GST_RANK_PRIMARY, GST_TYPE_MATROSKA_DEMUX))
return FALSE;
return TRUE;
}
Run Code Online (Sandbox Code Playgroud)
现在gst_element_register()是类型
gboolean gst_element_register (GstPlugin *plugin,
const gchar *name,
guint rank,
GType type);
Returns :
TRUE, if the registering succeeded, FALSE on error
Run Code Online (Sandbox Code Playgroud)
那为什么不用以下方式写呢?
gboolean
gst_matroska_demux_plugin_init (GstPlugin * plugin)
{
/* parser helper separate debug */
GST_DEBUG_CATEGORY_INIT (ebmlread_debug, "ebmlread",
0, "EBML stream helper class");
/* create an elementfactory for the matroska_demux element */
return gst_element_register (plugin, "matroskademux",
GST_RANK_PRIMARY, GST_TYPE_MATROSKA_DEMUX))
}
Run Code Online (Sandbox Code Playgroud)
它是模式的一部分.
if (!some_function(...))
return false;
if (!other_function(...))
return false;
return true;
Run Code Online (Sandbox Code Playgroud)
编写它的人决定不改变模式只是因为只有一个函数调用.最终这是一个品味问题.
因此,代码没有问题。至少如果有人使用任何提到的片段我不会惩罚。
我认为造成这种情况的原因有以下几点:
结论就是我一开始说的。只要代码易于理解就没关系。关于一些优化收益,我认为编译器有足够的智能来处理。