Erfordert der C-Standard, dass Compiler mit Dateien umgehen können, die nicht als ASCII codiert sind? Insbesondere frage ich mich, ob utf-8-Dateien standardkonform sind. Unterscheidet sich die Antwort auf die vorherige Frage zwischen C89, C99 und C11?Unicode-Zeichen in C
Angenommen, es ist legal, Zeichen außerhalb von ASCII in C-Quelldateien zu verwenden, welche Verwendungen sind zulässig?
ich von ein paar verschiedene Anwendungsfälle denken kann:
- innerhalb von Kommentaren
- Innerhalb Strings
- Innerhalb Identifikatoren
- Innerhalb Makronamen
Hier ist ein Beispiel alle zeigen vier:
#ifdef PRINT_©
// Print out the © notice
cont char my©Notice[] = "This program is © 2016 ACME INC";
puts(my©Notice);
#endif
Wenn C zulässt, dass Nicht-ASCII-Zeichen in den oben aufgeführten Verwendungen erscheinen, gibt es irgendwelche Einschränkungen für die Codepunkte, die verwendet werden können?
Denken Sie daran, dass dies eine Frage zu C-Standards ist. Ich bin mir bereits darüber im Klaren, dass die Verwendung von Unicode-Zeichen in Bezeichnern und Makros die Verwendung des Codes erschweren wird.