作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个bcmp(&v6_addr1,&v6_addr2,sizeof(v6_addr1))
(gdb) p v6_addr2
$15 = {u = {b = "0\001", '\000' <repeats 12 times>, "\002\061", w = {304, 0,
0, 0, 0, 0, 0, 12546}, l = {304, 0, 0, 822214656}}}
(gdb) p v6_addr1
$16 = {u = {b = "0\001", '\000' <repeats 12 times>, "\002\061", w = {304, 0,
0, 0, 0, 0, 0, 12546}, l = {304, 0, 0, 822214656}}}
(gdb) p bcmp(&v6_addr1,&v6_addr2,sizeof(v6_addr1))
$18 = 1
gdb 中的 block 似乎是相同的
但是 bcmp 返回值为 1..可能是什么原因?
最佳答案
如果结构包含填充,这些位置的值可能会有所不同。如果您检查这些值,这不会显示在调试器中,因为它只显示值。
您可以通过examining来验证这一点实际内存内容。
不要bcmp
。来自手册:
The bcmp() function compares the two byte sequences s1 and s2 of length n each.
关于c - 尽管 block 相似,bcmp() 返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27058544/
我正在做一个bcmp(&v6_addr1,&v6_addr2,sizeof(v6_addr1)) (gdb) p v6_addr2 $15 = {u = {b = "0\001", '\000' ,
我是一名优秀的程序员,十分优秀!