ARM EABI编译器解释中的memcpy()指令

ARM EABI编译器解释中的memcpy()指令,c,arm,memcpy,toolchain,eabi,C,Arm,Memcpy,Toolchain,Eabi,我正在使用ARM EABI编译器使用memcpy()函数。正如我在文件中看到的,该函数定义为 extern _ARMABI void *memcpy(void * __restrict /*s1*/, const void * __restrict /*s2*/, size_t /*n*/) __attribute__((__nonnull__(1,2))); /* * copies n charact

我正在使用ARM EABI编译器使用memcpy()函数。正如我在文件中看到的,该函数定义为

extern _ARMABI void *memcpy(void * __restrict /*s1*/,
                    const void * __restrict /*s2*/, size_t /*n*/)
                    __attribute__((__nonnull__(1,2)));
   /*
    * copies n characters from the object pointed to by s2 into the object
    * pointed to by s1. If copying takes place between objects that overlap,
    * the behaviour is undefined.
    * Returns: the value of s1.
    */
请原谅我的无知;一般来说,我对C和指针不太熟悉。有人能告诉我const void*是什么意思吗?调用函数时是否需要维护这些语法(如_属性等)

谢谢

我的实施:

char mycharacter;
mycharacter = ROM_UARTCharGetNonBlocking(UART0_BASE);
memcpy(SRAM_BASE, mycharacter, size_t (mycharacter);

拥有一个标准库的全部意义在于,您不必了解使用该函数的实现。

有趣…明白您的意思…但是,正如我所说,我对使用此函数很感兴趣,但会出现错误…我将添加我正在尝试使用的代码…您似乎不知道如何使用
memcpy
,应该从阅读尽可能多的有关该函数的文档开始,直到您理解它为止。确切地说,是的,这就是为什么我要求解释函数的原因…你有任何有用的链接吗?你可以从开始。明白了…我现在取得了一些进展,但遇到了两个错误:uart_echo.c(95):错误:#167:类型为“int”的参数与类型为“void*restrict”的参数不兼容您的代码不应该编译…请参阅任何有关C类型解释的介绍性C参考(并且忽略非标准编译器属性)为什么要为其第二个参数传递
memcpy
字符?!它需要知道从哪个内存复制到哪个内存。你会出于什么可能的原因将角色转换为
大小\u t
?!(听起来你根本不知道如何使用
memcpy
)好吧……既然我没有mycharacter的内存地址,我该怎么做呢?&运算符让你获取变量的引用。老实说,如果你对C语言和语法有疑问,你应该在提出问题之前仔细阅读。