Ich habe einige der Best Practices für das GNOME-Projekt gelesen und eine Sache, die sie immer wieder betont haben, war die Vermeidung von C99-Funktionen, da die Unterstützung immer noch nicht weit verbreitet war. Einige der Dinge, die sie erwähnten, waren Features wie einzeilige Kommentare und das Deklarieren von Variablen in der Mitte eines Blocks. Es hat mich wundern, ist C99 Unterstützung, auch für grundlegende Funktionen wie //
Kommentare, wirklich noch nicht weit verbreitet? Es ist fast 15 Jahre her, seit der Standard angenommen wurde, und wir haben sogar einen neuen Standard in dieser Zeit herauskommen lassen. Ist das wirklich noch ein Problem?Ist die C99-Unterstützung wirklich noch nicht weit verbreitet?
Antwort
http://en.wikipedia.org/wiki/C99#Implementations
Scheint, wie es immer noch ein bisschen ein Problem, auch in GCC, obwohl es sieht aus wie einige kommerziellen Compiler den gesamten Standard implementiert haben.
Microsoft hat wiederholt gesagt, dass es keine Pläne gibt, den C99-Standard zu irgendeinem Zeitpunkt in der Zukunft zu implementieren, was eine Schande für C-Programmierung unter Windows ist.
Der einzige remote-relevante "C-Compiler", der für die Verwendung in Desktop-Anwendungen oder mobilen Anwendungen verwendet werden kann, aber C99 nicht unterstützt, ist MSVC. Wenn Sie Embedded-Software für obskure Systeme mit ihren eigenen proprietären Compilern schreiben, könnte die Vermeidung von C99-Funktionen sinnvoll sein, aber die Wahl in Gnome macht überhaupt keinen Sinn.
- 1. Ist Windows Workflow weit verbreitet?
- 2. Ist der Common Service Locator weit verbreitet?
- 3. CSS calc() ist es weit verbreitet?
- 4. Ist die Business Processing Modeling Notation (BPMN) weit verbreitet?
- 5. hat Python 3 schon weit verbreitet?
- 6. ist pex wirklich noch aktiv?
- 7. Wie lange wird ASP.NET MVC in der Industrie weit verbreitet?
- 8. Welche OAuth-Anbieter sind in der ganzen Welt weit verbreitet?
- 9. Ist der Single-Element Enum Typ Singleton wirklich eine weit verbreitete gute Idee?
- 10. Warum ist #import Foundation.h in Objective-C weit verbreitet, aber die einzelnen Importe sind in Java typisch
- 11. Ist die unordered_map wirklich ungeordnet?
- 12. Warum rand() nicht wirklich zufällig ist?
- 13. Guave des ImmutableList ist nicht wirklich unveränderlich
- 14. Warum sind OODBMS nicht so verbreitet wie RDBMS?
- 15. Ist keine wirklich eingebaut?
- 16. Wie verbreitet sich UserTransaction?
- 17. Ist Cocoa MVC nicht wirklich MVP?
- 18. Wie unportierbar ist die Assemblersprache,/wirklich /?
- 19. Ist CDATA wirklich notwendig?
- 20. RubyMine Debugger.start ist noch nicht
- 21. Ist die Python-Standardbibliothek wirklich Standard?
- 22. Ändern des Codierungsstils aufgrund der Android GC-Leistung, wie weit ist es zu weit?
- 23. Ist "für" nicht wirklich faul in clojure?
- 24. Haskell Concurrency - ist ForkIO wirklich nicht deterministisch?
- 25. Wann ist die Reintegrationsoption wirklich notwendig?
- 26. Ist die Komplexität von scala.xml.RuleTransformer wirklich exponentiell?
- 27. Ist das wirklich DDD?
- 28. Ist Void wirklich uninstallierbar?
- 29. Ist "safe_eval" wirklich sicher?
- 30. Wie schwer ist QObject wirklich?
Huh. Weißt du, warum MS C99 nicht implementieren wird? –
http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/ Wie ich es verstehe, werden sie nur Funktionen implementieren, die Teilmenge der C++ - Standards sind. – Nobilis
@kunkelwe: Weil Microsoft nur am C-Standard-Prozess beteiligt ist, sabotiert es es. –