Guardar datos complejos en la SD [INFO]

enhorabuena por el post. muy util !

Podrias dar mas detalles de estas lineas=

myFile.write((const uint8_t*)(&datos), sizeof(datos));
  1. datos se supone que es una STRUCTURA, y lo estas convirtiendo (cast) a un "unsigned integer 8 bits" ?
  2. El "&" se usa para que el cast se realice sobre los elementos que integran la Structura, en lugar de tener que referirse a cada elemento por separado?
  3. Sizeof, simplemente le dice cuantos elementos van a escribirse, es decir, los que hay dentro de la estructura?
    por lo que realmente la funcion write, aquí es algo compleja y hace una lectura de todos los elementos de la estructura de uno en uno?

He entendido algo bien? puedes corregirme donde me equivoco?
muchas gracias