>Geht das nicht? Ist das einfach nicht "die feine englische Art"?
Unter "gewissen Umständen" geht das schon. Und es gibt auch einige
Daumenregeln, was man tut und nicht tut.
Das hängt mit der Frage zusammen, wie ein Compilationsvorgang erfolgt,
eine #include-Anweisung behandelt wird und wie das linken erfolgt.
1. Wenn Du nur eine einzige C-Datei hast, in der delay verwendet wird,
reicht eine Definition von F_CPU in der C-Datei hin.
2.a Wenn Du mehrere C-Dateien hast, in denen delay verwendet wird, dann
kannst Du theoretisch in jeder C-Datei, ein Define hinschreiben. Das
ist aber unpraktisch, weil bei einer Änderung jede dieser C-Dateien
geändert werden muss.
2.b Du kannst das in eine H-Datei schreiben, die in allen betroffenen
C-Dateien included wird.
2.c Oder Du kannst das Verfahren mit den "Project-CompilerSettings"
resp. dem makefile verwenden.
Es gibt ohnehin Meinungsverschiedenheiten darüber, aber die meisten
verwenden 2.b oder 2.c. Man hat nur eine Stelle, an der die Definition
steht. 2.b. Erfordert noch eine Abfrage, ob F_CPU schon definiert ist,
falls es (bei grösseren Projekten) sein kann, das die H-Datei mehrfach
included wird.