将数组传递给函数并在Arduino中使用sizeof

Guu*_*uus 4 c arduino

我是Arduino padawan学习者.我想将一个字节数组传递给一个函数,并获得该数组的大小.

byte data[] = {
    B00000000,
    B00000001,
    B00000011,
    B00000111
};

Serial.println(sizeof(data)); // ----------------------> displays 4
Run Code Online (Sandbox Code Playgroud)

当我将它传递给函数sizeof返回2.如何在函数中返回4?

writeData(data);

void writeData(byte data[]) {
    Serial.println(sizeof(data)); // -------------------> displays 2
}
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 14

例如,当将数组作为参数传递时,编译器不再具有数组的大小.代替数组被作为指针传递,并且在writeData所述sizeof操作获取指针的大小,而不是阵列(或其他)它指向.

  • 是的,以上.此外,规范的解决方案是传递指针和大小.void writeData(const byte*data,size_t size); (3认同)