我刚发现在一些嵌入式代码此功能定义:

float round_float_to_4(static float inputval);

我熟悉的其他用途的静态(全局变量,函数和局部变量),但是这是我第一次看到它作为说明符函数参数。我假定这个力编译器使用固定的存储器位置的 inputval 而不是堆叠?

有帮助吗?

解决方案

这是非标准。我猜同样的事情,你,我并不感到惊讶在具有嵌入式目标的编译器,扩展的。

其他提示

这不是有效的。其中static可以以一个函数参数我知道的可以使用的唯一有效的地方是在阵列尺寸

float round_float_to_4(float inputval[static 4]);

话说inputval将,在此函数的所有调用,指向存储器提供至少4浮标(这是一个C99此外,它不会出现在C89)。

按C标准,

  

这应在参数发生的唯一存储类说明   声明是寄存器。

许多嵌入式设备有一个严重限制栈,这样的功能将是非常有益的减少堆栈溢出的机会,同时还让您重新入代码的机会。

更小的芯片没有任何机会,把变量在栈中,所以所有的参数都隐式的存储位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top