<分区>
所以我正在尝试编写我自己的内存复制实现的宏版本,但由于某种原因它以非零状态退出。
#include <stdio.h>
#include <stdlib.h>
#define BTools_WRITE(dest, src, n) for (size_t i = 0;i<n;i++) { \
*(unsigned char*)(dest++) = *(unsigned char*)(src++); \
}
int main(void) {
char* f = "Hello sir!";
char* u = "4444";
void* fptr = f;
void* uptr = u;
int g = 4;
BTools_WRITE(fptr, uptr, g);
printf("%s\n", f);
return 0;
}
我试过将 for 循环更改为 while 循环,或者在整个宏周围放置一个 do-while 循环,它总是以非零状态返回。我怎样才能解决这个问题?这可以只用一个宏来完成吗?