C++ virtual 与 inline (无法解析的外部符号, 未知的#endif )

本文详细介绍了在C++编程中遇到的关于'virtual'和'inline'关键字使用时出现的外部符号解析错误和未知的#endif问题。通过分析错误原因,提供了解决这类问题的有效方法,帮助开发者排查和修复编译错误。
摘要由CSDN通过智能技术生成
Mac 下的一套代码编译不报错,但在 windows 下编译时出错:无法解析的外部符号 或 未知的 #endif。 不同平台下的C++写法要求不同,所以必须严格按照C++标准写代码
SKpacketParser.h 如下
class SKPacketParser
{
public:
	SKPacketParser() {};
	virtual ~SKPacketParser() {};

public:
	virtual int ParsePacket(char* data, int len);
	virtual inline int GetHeadLen(const char * data, int len);
	virtual inline  int GetPacketLen(const char * data, int len);
	virtual inline  bool CheckHead(const char * data, int len);
};

#endif

解决办法:

内联函数(inline)
内联函数的目的是为了减少函数调用时间。它是把内联函数的函数体在编译器预处理的时候替换到函数调用处,这样代码运行到这里时候就不需要花时间去调用函数。但内联函数有个缺点是它会增加执行文件大小。所以如果不适当的使用内联函数会造成执行文件特别大。
而使用内联函数有以下几点需要注意:
头文件中不仅要包含inline函数的声明,还要包含inline函数的定义
编译器需要把inline函数体替换到函数调用处,所以编译器必
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值