C++ 不带语句c+的函数+;
我在追踪hevc代码。遇到一个没有语句的奇怪函数:C++ 不带语句c+的函数+;,c++,hevc,C++,Hevc,我在追踪hevc代码。遇到一个没有语句的奇怪函数: Void encode( Bool bEos, TComPicYuv* pcPicYuvOrg, TComPicYuv* pcPicYuvTrueOrg, const InputColourSpaceConversion snrCSC, // used for SNR calculations. Picture in original colour space.
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 );
因为这个函数,我无法向前跟踪。它什么都不做。您看到的是一个声明(函数原型)。在某个地方,会有一个定义(函数,具有相同的名称和签名,以及语句) 如果没有定义,将出现链接器错误(因为正如您所指出的,有代码试图调用它),除非调用代码已优化(我认为这不太可能) 我想说。。。继续搜索,并仔细检查每个搜索命中 更新:通常会有成对的文件,例如
NameOfClass.h
和NameOfClass.cpp
。.h(头文件)中的声明(不含语句),以及.cpp文件中的定义(含语句)
正如@Sven指出的,它也可能在图书馆里,所以情况可能会变得有点模糊。但是优秀的C++程序员会把库的名称(
typedef
ed),或者是复制错误。(好的–它在TypeDef.h
中,作为TypeDef void;
。为什么??)你的意思是“没有定义”?如果是,则必须在某个地方有一个定义,否则代码将无法编译。@GillBates:尝试将其解读为“无语句”或“无任何语句”。请注意,汉语(我认为其他东亚语言)没有复数,因此以这些语言为母语的人很难正确使用复数。(他们也没有文章,所以他们也觉得很难把它们做好。)是的,在某个地方会有一个定义,除非这是从图书馆导入的东西。@SvenNilsson是的,doctorlove破解了它。我将编辑我的答案以澄清通常的.h和.cpp对。
m_cTEncTop.encode( bEos, flush ? 0 : pcPicYuvOrg, flush ? 0 : &cPicYuvTrueOrg, snrCSC, m_cListPicYuvRec, outputAccessUnits, iNumEncoded, m_isTopFieldFirst );