我正在学习ffmpeg项目
其中一个示例程序中的:
/* must be called before using avcodec lib */
avcodec_init();
/* register all the codecs */
avcodec_register_all();
我想知道这两个函数在内部做了什么我使用gdb查看已创建的全局变量,但没有找到任何变量
实际上我的问题不是针对ffmpeg库的它是关于使用外部C库在这些库中应该有一些创建的变量,我如何找到这些变量?
我使用Netbeans作为IDE
Thanks in advance
如果它们是外部库,则根本不可能总是看到这些变量。一个好的库不会有很多全局可访问的变量。它们中的大多数是静态的或本地的,然后你不能访问它们,所以它们对你来说不太重要。
文档,如果它是好的,应该声明所有的变量,函数等,你可以访问和使用。头文件也是一个很好的信息源,尽管它们并不总是告诉您如何使用所看到的内容。而且,就像在这种情况下,如果你能得到源代码,这也是一个很好的信息来源,尽管它可能需要很长时间才能开始看清楚,如果库是广泛的。
添加
如果库是用调试信息编译的,并且你有源代码,你可以看到它是如何工作的,并检查各种变量(局部的,静态的,全局的)。对您隐藏信息主要不是为了保密,而是为了让您无法访问私有信息,并且(可能无意中)损害它所保存的私有数据的完整性。正如我在评论中已经说过的,这就是所谓的封装,在我看来,这是一种良好的编程实践。
相信,您可以获得源代码并自己查看吗?
http://ffmpeg.org/download.html