c - 在未声明的数据变量上使用数据指针
问题描述
我有一个具有以下原型的函数(我无法修改):
void writeData(uint16_t add, uint16_t *data);
*data
应该指向一个uint16_t
变量。所以在我的代码中,我像这样使用它,例如:
uint16_t dataValue;
dataValue = 55;
writeData(0, &dataValue);
有没有办法简化上面的代码以便在writeData
不声明变量的情况下使用函数dataValue
?像这样,但语法正确:
writeData(0, syntaxInCWhichPointsToTheAdressOfTheValueInsideBrackets{55});
如果不是,我们可以修改操作符同一指令行中指向的值&
吗?
writeData(0, &dataValue{dataValue=55}); // something like this but with correct syntax
我不想封装writeData
在其他函数中。
解决方案
使用 C99,您可以使用复合文字:
writeData(0, (uint16_t []) { 55 });
但在我看来,它使代码的可读性降低。
推荐阅读
- windows - 几次重启后 KMDF DMA 传输变慢
- generics - 不安全的队列实现
- bash - 使用 sed 替换文本并缩进数据
- scikit-learn - 使用 XGBClassifier 进行多类分类
- angular - 监听指令主机上的输入值变化
- angular - 滚动到底部;scrollTop = scrollHeight 运行太早?
- php - Laravel 5.0 使用自定义磁盘保存图像导致错误
- c# - 我需要在部分视图中运行操作方法,但它会将我重定向到另一个操作
- excel - 如何将多行文本文件转换为单行文本文件
- html - 使用前缀/后缀输入,而不是先前的同级选择器