Errore: expected initializer before 'void'

Con questo semplice listato per leggere i secondi dal RTC DS3231:

#include <Wire.h>

byte second

void setup() {
 Wire.begin(); 
}

void DS3231_read(){                         // Function to read time & calendar data
  Wire.beginTransmission(0x68);        // Start I2C protocol with DS3231 address
  Wire.write(0);                                // Send register address
  Wire.endTransmission(false);          // I2C restart
  Wire.requestFrom(0x68, 1);           // Request 7 bytes from DS3231 and release I2C bus at end of reading
  second = Wire.read(); 
}

void DS3231_display(){
  // Convert BCD to decimal
  second = (second >> 4) * 10 + (second & 0x0F);
}
        
void loop() {
  DS3231_read(); 
  DS3231_display();                             
  delay(50);  
}

Mi da quesa serie di errori che non ho ancora imparato a riconoscere:

Arduino:1.8.5 (Mac OS X), Scheda:"Arduino/Genuino Uno"

DS3231_v1:10: error: expected initializer before 'void'
void DS3231_read(){
^
/Users/ezio/Documents/Arduino/Nano/DS3231_v1/DS3231_v1.ino: In function 'void DS3231_read()':
DS3231_v1:15: error: 'second' was not declared in this scope
second = Wire.read();
^
/Users/ezio/Documents/Arduino/Nano/DS3231_v1/DS3231_v1.ino: In function 'void DS3231_display()':
DS3231_v1:20: error: 'second' was not declared in this scope
second = (second >> 4) * 10 + (second & 0x0F);
^
exit status 1
expected initializer before 'void'

Ho cercato nel forum ma nei topi che ho visto non ho trovato spiegazioni esaurienti per correggere il listato.
Grazie per un consiglio

Metti un puntoevirgola alla fine della prima riga

#include <Wire.h>

byte second       <-------- della seconda in effetti

:smiley:

Mi sono perso in un bicchier d'acqua...
Grazie