C 如何传递数组';s size作为sizeof的另一个参数

C 如何传递数组';s size作为sizeof的另一个参数,c,arrays,pointers,C,Arrays,Pointers,我有以下功能: addToTxBuffer((uint8_t []){0x01,0x11}, 2, zeroPad); 第二个参数2是第一个参数的size。我想使用sizeof而不是2。是否有任何语法使其成为可能?i、 e: addToTxBuffer((uint8_t header[]){0x01,0x11}, sizeof(header), zeroPad); 但这不起作用。复合文字未命名,因此不能以这种方式引用它们。您需要单独定义数组,然后才能获得其大小: uint8_t header

我有以下功能:

addToTxBuffer((uint8_t []){0x01,0x11}, 2, zeroPad);
第二个参数
2
是第一个参数的
size
。我想使用
sizeof
而不是
2
。是否有任何语法使其成为可能?i、 e:

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

但这不起作用。

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

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

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

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

宏可以提供复合文字的指针和大小。宏可以提供复合文字的指针和大小。