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);
宏可以提供复合文字的指针和大小。宏可以提供复合文字的指针和大小。