c - 减号 (-) 运算符对 C 中的指针变量有什么功能?
问题描述
我遇到了这行代码:
memset(tmp, 0, (-len) & 0x7F);
指针变量len
在哪里。uint8_t
按位运算之前的“ - ”是什么?len
结果会是什么?
鉴于它是一个无符号整数,我认为以这种方式添加一个符号是没有意义的(如果它在 C 中完全可能的话),更不用说它是一个指针。
解决方案
len
不能是指向变量的指针,因为一元减号运算符不能接受指针作为操作数。代码无法编译。考虑到memset 的函数原型,更可能len
是这里的类型uint8_t
。此处描述了对无符号类型应用一元减号运算符的行为。
推荐阅读
- windows - FC 命令找不到现有目录
- c++ - 需要 C++ 索引队列数据结构
- c - 使用 rewind 或 fgets 使用大小为 8 的未初始化值
- unity3d - 统一广告在 Playstore 上不起作用但在测试中起作用?
- firebase - 在颤动中显示屏幕列表中的数据的方法是什么?
- java - 如何为不同的 API 获取不同的参数,如下所述
- python - 在 Jupyter 中由 Python 创建 .txt 文件的问题
- mysql - 如何配置 rails 控制台以显示执行 sql 的代码行?
- python - python程序打印从用户输入的数字开始的7个数字序列
- c# - C# Where 子句中的强制转换异常