Grazie a tutti. Riporto la versione finale:
// Se il progetto è composto da più file nella cartella, la riga che segue
// si deve trovare nel file .ino con il nome uguale a quello della cartella:
char *percorso=__FILE__; // __FILE__ è una macro che fornisce il percorso
// completo del file, fino all'estensione.
void setup()
{
char *ver_ext=strrchr(percorso,'v'); // Viene cercata, partendo da destra, l'ultima lettera 'v'
// nel nome del file, che identifica l'inizio della versione.
char ver[10]; // Viene dichiarata una stringa per scriverci la versione senza estensione.
byte n_car=strlen(ver_ext)-4; // Viene scritta in n_car la lunghezza della versione,
// tolti i 4 caratteri finali ".ino".
strncpy(ver, ver_ext, n_car); // Viene fatta una copia degli n_car caratteri
// da ver_ext (versione con estensione) a ver.
ver[n_car]='\0'; // ver viene terminata al carattere n_car, affinché i successivi ".ino"
// restino esclusi dalla stringa. Nota: l'n_car-esimo carattere ha indice
// n_car-1, perché il primo ha indice 0.
}
"Elementare, Watson!"
Il problema era mettere (e non mettere) gli asterischi nei posti giusti...