在未声明的数据变量上使用数据指针

PLB*_*PLB 1 c pointers

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

void writeData(uint16_t add, uint16_t *data);
Run Code Online (Sandbox Code Playgroud)

*data应该指向一个uint16_t变量。所以在我的代码中,我像这样使用它,例如:

uint16_t dataValue;
dataValue = 55;
writeData(0, &dataValue);
Run Code Online (Sandbox Code Playgroud)

有没有办法简化上面的代码,以便在writeData不声明变量的情况下使用函数dataValue?像这样,但使用正确的语法:

writeData(0, syntaxInCWhichPointsToTheAdressOfTheValueInsideBrackets{55}); 
Run Code Online (Sandbox Code Playgroud)

如果不是,我们可以修改操作符同一指令行中指向的值&吗?

writeData(0, &dataValue{dataValue=55}); // something like this but with correct syntax
Run Code Online (Sandbox Code Playgroud)

我不想封装writeData在其他函数中。

nwe*_*hof 5

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

writeData(0, (uint16_t []) { 55 });
Run Code Online (Sandbox Code Playgroud)

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