必要なパラメーターを提供しないが機能しているように見える関数呼び出しを理解しようとしています。コードは、RTClib という Arduino ライブラリにあります。なぜ/どのようにこれが機能するのですか????
呼び出しを行う関数:
uint8_t DateTime::dayOfWeek() const {
uint16_t day = date2days(yOff, m, d);
return (day + 6) % 7; // Jan 1, 2000 is a Saturday, i.e. returns 6
}
呼び出される関数:
static uint16_t date2days(uint16_t y, uint8_t m, uint8_t d) {
if (y >= 2000)
y -= 2000;
uint16_t days = d;
for (uint8_t i = 1; i < m; ++i)
days += pgm_read_byte(daysInMonth + i - 1);
if (m > 2 && y % 4 == 0)
++days;
return days + 365 * y + (y + 3) / 4 - 1;
}
完全なライブラリ: https://github.com/adafruit/RTClib