首页 > 解决方案 > 如何使用 sizeof 将数组的大小作为另一个参数传递

问题描述

我有以下功能:

addToTxBuffer((uint8_t []){0x01,0x11}, 2, zeroPad);

第二个参数2是第size一个参数。我想使用sizeof而不是2. 是否有任何语法使它成为可能?IE :

addToTxBuffer((uint8_t header[]){0x01,0x11}, sizeof(header), zeroPad);

但这不起作用。

标签: carrayspointers

解决方案


复合文字是未命名的,因此您不能以这种方式引用它们。您需要单独定义数组,然后您可以获得它的大小:

uint8_t header[] = {0x01,0x11};
addToTxBuffer(header, sizeof(header), zeroPad);

推荐阅读