首页 > 解决方案 > 在未声明的数据变量上使用数据指针

问题描述

我有一个具有以下原型的函数(我无法修改):

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在其他函数中。

标签: cpointers

解决方案


使用 C99,您可以使用复合文字:

writeData(0, (uint16_t []) { 55 });

但在我看来,它使代码的可读性降低。


推荐阅读