Ich schaue mir hier einen C-Quellcode an und habe Folgendes gefunden:
fprintf(stderr, _("Try `%s --help' for more information.\n"), command);
Ich habe den Unterstrich schon gesehen, als ich mir wxWidget angesehen habe, und ich habe gelesen, dass er für die Internationalisierung verwendet wird. Ich fand es wirklich schrecklich (der am wenigsten intuitive Name aller Zeiten), aber ich dachte, es ist nur eine weitere seltsame wxWidget-Konvention.
Jetzt finde ich es wieder in irgendeiner Alsa-Quelle. Weiß jemand woher es kommt?
Es kommt von GNU gettext
, ein Paket zur Erleichterung des Internationalisierungsprozesses. Das _()
Die Funktion ist einfach ein String-Wrapper. Diese Funktion ersetzt grundsätzlich die angegebene Zeichenfolge zur Laufzeit durch eine Übersetzung in der Sprache des Systems, falls verfügbar (d. h. wenn sie eine .mo
Datei für diese Sprache mit dem Programm).
Es kommt von gettext. Ursprünglich gedacht, war die Internationalisierung zu lang, um sie jedes Mal einzugeben, wenn Sie eine internationalisierte Zeichenfolge benötigten. Also haben Programmierer die Abkürzung i18n erstellt (weil es 18 Buchstaben zwischen dem ‘i’ und dem ‘n’ in der Internationalisierung gibt) und Sie können Quellcode sehen, der damit verwendet wird. Anscheinend war i18n aber immer noch zu lang, also ist es jetzt nur noch ein Unterstrich.
Der Name ist in der Tat nicht intuitiv, ich denke, sie wollten hauptsächlich weniger Zeichen eingeben.
– Matti Virkkunen
26. Juli 2010 um 15:00 Uhr
Denken Sie darüber nach, nach … 2 Jahren? Verdammt, ich fühle mich so alt… Ich glaube, der Name wurde tatsächlich so gewählt, um den Übersetzungsaufwand bestehender Programme zu minimieren.
– Dacav
23. September 2013 um 12:19 Uhr
Was macht
printf (_(“hello, world\n”))
bedeuten?, Was bedeutet_(“text”)
dh Unterstrich-Klammer-Zeichen, tun?, Was macht _(„Text“), dh Unterstrich-Klammer-Zeichen,?– phuklv
30. Dezember 2019 um 6:51 Uhr