c - C 赋值语句中附加的零是什么意思?
问题描述
我写信是为了询问一个关于有线 C 语句的快速问题。以下语句可在 libgcrypt 1.7.3 的 mpi/mpi-pow.c 的第 680 行中找到。
base_u_size |= (precomp_size[k] & ((mpi_size_t)0 - (k == e0)) );
所以后面的附加0
对mpi_size_t
我来说似乎很连贯。我还展示了以下汇编代码序列,它对应于这个源代码语句:
mov -0x138(%ebp),%eax
mov -0x48(%ebp,%eax,4),%edx
mov -0x138(%ebp),%eax
cmp -0x114(%ebp),%eax <----- eax = k, -0x114(%ebp) = e0
jne 80b84b2 <_gcry_mpi_powm+0xeee>
mov $0xffffffff,%eax
jmp 80b84b7 <_gcry_mpi_powm+0xef3>
80b84b2: mov $0x0,%eax
80b84b7: and %edx,%eax
所以不知何故0
不会在这里产生任何影响?
解决方案
推荐阅读
- python - 为什么这个 Iris 数据集上的 silhouette_score 总是返回 0?
- python - 使用 Selenium Scraper (Python) 删除符号
- php - 如何在 wordpress 插件上添加 html 和脚本?
- c - Gradle:如何为 C/C++ 目标文件指定输出目录?
- android-emulator - Hyper V错误上的Android模拟器
- c# - Xamarin Live Reload Preview 无法与 android 模拟器连接
- ruby - 在 ruby 中生成 OpenSSL subject_name 哈希
- azure - Azure 门户中的 Azure B2C 刀片丢失
- ms-access - 使用匹配的外键访问下一条记录
- c# - 在 VisualStudio 中调用期间引发异常