函数没有语句c ++

时间:2017-01-17 11:09:48

标签: c++ hevc

我正在追踪hevc代码。遇到了一个没有声明的奇怪函数:

 Void encode( Bool bEos,
               TComPicYuv* pcPicYuvOrg,
               TComPicYuv* pcPicYuvTrueOrg, const InputColourSpaceConversion snrCSC, // used for SNR calculations. Picture in original colour space.
               TComList<TComPicYuv*>& rcListPicYuvRecOut,
               std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded );

并在某处调用它:

m_cTEncTop.encode( bEos, flush ? 0 : pcPicYuvOrg, flush ? 0 : &cPicYuvTrueOrg, snrCSC, m_cListPicYuvRec, outputAccessUnits, iNumEncoded, m_isTopFieldFirst );

由于这个功能我无法追查。它什么都不做

1 个答案:

答案 0 :(得分:3)

您正在查看的是声明(函数原型)。在某处,会有一个定义(函数,具有相同的名称和签名,以及语句)。

如果没有定义,则会出现链接器错误(因为有代码试图调用它,正如您所指出的那样),除非调用代码已被优化(我认为不太可能)

我会说...继续搜索,并仔细检查每次搜索。

更新:通常会有成对的文件,例如NameOfClass.hNameOfClass.cpp。 .h(头文件)文件中的声明(没有语句),.cpp文件中的定义(带语句)。

正如@Sven指出的那样,它也可能存在于库中,因此情况会变得有些模糊。但是优秀的C ++程序员会将库的名称(NameOfLibrary.so或.a或.dll)放在他们的.h文件的顶部。