比较典型的函数有内存操作函数 memcpy 和 memset,如下面的代码所示:
- void *memset(void *buffer, int b, size_t size)
- {
- assert(buffer!=NULL);
- char* retAddr = (char*)buffer;
- while (size--> 0)
- {
- *(retAddr++) = (char)b;
- }
- return retAddr;
- }
- void *memcpy (void *dst, const void *src, size_t size)
- {
- assert((dst!=NULL) && (src!=NULL));
- char *temp_dest = (char *)dst;
- char *temp_src = (char *)src;
- char* retAddr = temp_dest;
- size_t i = 0;
- if ((retAddr>temp_src) && (retAddr<(temp_src+size)))
- {
- for (i=size-1; i>=0; i--)
- {
- *(temp_dest++) = *(temp_src++);
- }
- }
- else
- {
- for (i=0; i<size; i++)
- {
- *(temp_dest++) = *(temp_src++);
- }
- }
- *(retAddr+size)='\0';
- return retAddr;
- }