下划线function

我在这里看一些C源代码,我发现了这个:

fprintf(stderr, _("Try `%s --help' for more information.\n"), command); 

当我看到wxWidget时,我已经看到了下划线,我读到它用于国际化。 我发现它真的太可怕了(有史以来最不直观的名字),但我认为它只是另一种奇怪的wxWidget惯例。

现在我在一些Alsa源中再次找到它。 有谁知道它来自哪里?

它来自GNU gettext ,这是一个旨在简化国际化进程的软件包。 _()函数只是一个字符串包装器。 该函数基本上用运行时的系统语言替换给定的字符串(如果可用的话(即,如果他们为该语言提供了该文件的.mo文件)。

它来自gettext。 最初想到,每当你需要一个国际化的字符串时,国际化太长了。 所以程序员创建了快捷方式i18n(因为在国际化中’i’和’n’之间有18个字母),你可以看到使用它的源代码。 显然虽然i18n仍然太长,所以现在它只是一个下划线。

这将来自gettext