如果缓冲区中有足够的空间,则将整数复制到缓冲区

1 c buffer integer copy

如果缓冲区有足够的空间,我有一个函数将整数复制到缓冲区

void copy_int(int val, void *buf, int maxbytes)
{
    if (maxbytes-sizeof(val) >= 0)
        mempcy(buf, (void *) &val, sizeof(val));
}
Run Code Online (Sandbox Code Playgroud)

问题是它总是将值复制到缓冲区,即使maxbytes太小也是如此.我不知道这是为什么?

Eri*_*rik 9

sizeof(val)是无符号值.int- unsigned产生无符号值.

使用: if (maxbytes >= sizeof(val))