c – ‘memcpy’未在此范围内声明
发布时间:2020-12-16 05:28:28 所属栏目:百科 来源:网络整理
导读:我试图用 gcc和 eclipse来构建一个开源的c库. 但是我收到这个错误 ‘memcpy’没有在此范围内声明 我尝试包括memory.h(和string.h)和eclipse找到该功能,如果我点击“开放声明”,但gcc给我的错误. 我能怎么做? #include algorithm#include memory.hnamespace
我试图用
gcc和
eclipse来构建一个开源的c库.
但是我收到这个错误 ‘memcpy’没有在此范围内声明 我尝试包括memory.h(和string.h)和eclipse找到该功能,如果我点击“开放声明”,但gcc给我的错误. 我能怎么做? #include <algorithm> #include <memory.h> namespace rosic { //etc etc template <class T> void circularShift(T *buffer,int length,int numPositions) { int na = abs(numPositions); while( na > length ) na -=length; T *tmp = new T[na]; if( numPositions < 0 ) { memcpy( tmp,buffer,na*sizeof(T)); memmove( buffer,&buffer[na],(length-na)*sizeof(T)); memcpy( &buffer[length-na],tmp,na*sizeof(T)); } else if( numPositions > 0 ) { memcpy( tmp,&buffer[length-na],na*sizeof(T)); memmove(&buffer[na],(length-na)*sizeof(T)); memcpy( buffer,na*sizeof(T)); } delete[] tmp; } //etc etc } 我收到每个memcpy和memmove功能的错误. 解决方法
你要么放了
using namespace std; 到另一个命名空间,或者你在每个memcpy或memmove这样做: […] std::memcpy( tmp,na*sizeof(T)); […] 在你的代码中,编译器不知道在哪里查找该函数的定义.如果使用命名空间,它会知道在哪里找到该函数. 此外,不要忘记包含memcpy函数的头文件: #include <cstring> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |