Das besondere am Makro __func__ ist, daß es kein Makro ist :-) Es ist
eine built-in Variable, die je nach Funktion einen anderen Wert hat und
wie ein static const char[] agiert. Du wist in PSTR also die gleiche
Fehlermeldung bekommen wie mit
1 | #include <avr/pgmspace.h>
|
2 |
|
3 | const char* foo (void)
|
4 | {
|
5 | static const char func[] = "func";
|
6 | return PSTR (func);
|
7 | }
|
D.h. func ist kein gültiger Initializer für das static const char __c[],
welches PSTR zu initialisieren versucht.