Linux用make编译时提醒memcmp在此作用域中尚未声明

xiaoxiezZ 2016-07-23 05:10:03
不知道怎么解决了,求助各位大神
代码在下面。报错如图:
#ifndef special_h
#define special_h

#include <string>
#include <map>
using namespace std;

#include "Packet.h"
#include "FieldType.h"
#include "DataProcessor.h"

namespace tcpmkpub {

class SpecialCase {
public:
virtual ~SpecialCase() {}
virtual bool operator()(DATA_PROCESSOR_ARGS) const = 0;
};

typedef pair<FieldType, double> FieldTimestamp;
extern map<FieldTimestamp, const SpecialCase *> special_cases;
extern void init_special_cases();

static inline bool check_special_case(FieldType field, DATA_PROCESSOR_ARGS)
{
// DebugMsg("%.6f check special case: field = %d, offset = %d",
// pkt_in->Timestamp(), field, offset_in);
bool wildcard_timestamp = false;
FieldTimestamp ind(field, pkt_in->Timestamp());
map<FieldTimestamp, const SpecialCase *>::const_iterator it;
it = special_cases.find(ind);
if ( it == special_cases.end() )
{
ind = FieldTimestamp(field, 0);
it = special_cases.find(ind);
if ( it == special_cases.end() )
return false;
wildcard_timestamp = true;
}

if ( (*it->second)(data_name, start, caplen,
offset_in, len, offset_out,
pkt_in, pkt_out) )
{
Note("special case processed at %s %.6f field %d",
input_filename, pkt_in->Timestamp(), field);
return true;
}
else
{
if ( ! wildcard_timestamp )
Alert("special case checking failed at field %d", field);
return false;
}
}

class SpecialCaseString : public SpecialCase
{
public:
SpecialCaseString(string s)
: str(s) {}

bool operator()(DATA_PROCESSOR_ARGS) const
{
if ( ! check(start, offset_in, len, caplen) )
return false;
len = str.length();
pkt_out->dump(start + offset_in, len, offset_out);
offset_in += len;
offset_out += len;
return true;
}

protected:
bool check(const u_char *start,
int offset_in, int len, int caplen) const
{
if ( len == VARLEN || len >= (int) str.length() )
len = str.length();
else
{
Alert("SpecialCaseString insufficient data: %d < %d",
len, str.length());
return false;
}

if ( offset_in + len > caplen )
{
Alert("SpecialCaseString out of bound: %d + %d > %d",
offset_in, len, caplen);
return false;
}

if ( memcmp(start + offset_in, str.c_str(), len) != 0 )
{
Alert("SpecialCaseString content mismatch");
return false;
}
else
return true;
}

string str;
};

class SpecialCaseIPAddr : public SpecialCase
{
public:
SpecialCaseIPAddr(string s)
{
in_addr_t a = to_addr(s.c_str());
for ( int i = 3; i >= 0; --i )
{
ip[i] = a & 0xff;
a = a >> 8;
}
}

bool operator()(DATA_PROCESSOR_ARGS) const
{
if ( len != sizeof(ip) || offset_in + len > caplen )
return false;
if ( memcmp(start + offset_in, ip, sizeof(ip)) != 0 )
return false;
pkt_out->dump(ip, sizeof(ip), offset_out);
offset_in += len;
offset_out += len;
return true;
}

protected:
unsigned char ip[4];
};

} // namespace tcpmkpub

#endif /* special_h */
...全文
598 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
slmax1 2016-07-27
  • 打赏
  • 举报
回复
string.h
ztenv 版主 2016-07-23
  • 打赏
  • 举报
回复
在linux下 man memcmp,然后看一下在哪个头文件中,把那个头文件包含进来
内容概要:本文围绕《【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)》展开,系统研究了高比例可再生能源接入背景下电力系统的低碳经济调度问题。该模型融合分布鲁棒优化(DRO)与机会约束规划(CCP),在满足N-1安全校验准则的前提下,有效应对风光出力不确定性,实现系统运行成本最小化与碳排放控制的双重目标。文档提供了完整的Matlab实现代码,涵盖数学建模、两阶段求解框架、线性化处理技巧及标准化测试系统(如IEEE 14/118节点)的仿真验证流程,具备较强的理论深度与工程复现价值。; 适合人群:适用于从事电力系统优化、能源互联网、低碳调度等方向的研究生、科研人员及工程技术开发者,尤其适合具备一定凸优化理论基础和Matlab/YALMIP建模能力的研究者; 使用场景及目标:①支撑高比例新能源电力系统安全经济运行策略研究;②深入掌握分布鲁棒优化与机会约束在不确定性决策的建模方法;③服务于高水平EI/SCI论文的成果复现、对比分析与创新改进; 阅读建议:此资源强调理论推导与代码实现的高度统一,建议读者结合YALMIP、CPLEX等优化工具包进行模型调试与参数敏感性分析,深入理解不确定性建模、对偶转换、线性近似等关键技术在实际电力调度的应用机制。
内容概要:本文聚焦于基于一致性分布式控制的多领航无人机系统,深入研究了多无人机编队的跟随控制与轨迹跟踪问题,并配套提供了完整的Matlab仿真代码实现。通过构建分布式控制协议,系统实现了在多个领航者引导下无人机集群的协同运动控制,确保跟随无人机能够快速收敛至期望编队构型并精确跟踪参考轨迹。文详细阐述了一致性理论在多智能体系统的应用机制,包括控制律的设计、李雅普诺夫稳定性分析以及通信拓扑结构的影响,并通过仿真实验验证了所提方法在复杂动态环境下的有效性、鲁棒性与抗干扰能力。; 适合人群:适用于具备自动控制理论、多智能体系统或无人机协同控制基础的研究生、科研人员及工程技术开发者,尤其适合熟悉Matlab/Simulink仿真环境并从事相关课题研究的专业人士。; 使用场景及目标:①用于多无人机编队控制算法的教学演示与科研复现;②支撑分布式一致性算法的改进与性能验证;③为复杂环境下无人系统协同任务(如搜索救援、集群侦察)提供算法原型与仿真验证平台; 阅读建议:建议读者结合文数学模型逐步调试Matlab代码,重点关注一致性协议耦合增益、拓扑权重等参数对编队收敛速度与轨迹跟踪精度的影响,并可进一步拓展至存在通信延迟、局部故障或障碍规避等实际约束条件下的算法优化研究。

65,212

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧