如果我发送memcmp两个指向整数的指针,那么它似乎将整数解释为字符。
例如:
int a = 5;
int b = 256;
int res = memcmp(&a,&b,sizeof(int));
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,它返回 1。
我想更好地理解这个函数,我想知道我是否使用了错误的函数,或者是否有一个类似的函数来比较内存块的保存int值。
假设 an 的大小int为 4 个字节(大多数情况下,但并非总是如此):
int a = 5; // Lowest address to highest address 0x05 0x00 0x00 0x00int b = 256; // Lowest address to highest address 0x00 0x01 0x00 0x00int a = 5; // Lowest address to highest address 0x00 0x00 0x00 0x05int b = 256; // Lowest address to highest address 0x00 0x00 0x01 0x00现在,函数memcmp按顺序比较每对字节:
如你看到的:
| 归档时间: |
|
| 查看次数: |
1985 次 |
| 最近记录: |