Древние define-ы существовавшие до ANSI - C (СИ)
Формулировка задачи:
Я уже не в первый раз сталкиваюсь с подобными строками в коде C и C++:
А именно интересует вот эта конструкция
Но и то там речь идёт о ruby.
Кто-нибудь может раскрыть эту тему поподробнее? Я хотел сначала написать это в обсуждение FAQ по директивам, но х.з. где правильней.
string_iconv_fprintf (stdout,
/* TRANSLATORS: "%s %s" after "compiled on" is date and time */
_("WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sebastien Helleu <removed@mail.ru> "
"- %s"),
PACKAGE_VERSION, WEECHAT_COPYRIGHT_DATE,
__DATE__, __TIME__, WEECHAT_WEBSITE);_("string")
. Что это такое вообще и зачем? А главное,как точно это работает,и почему я не в первый раз вижу это в примерах,касающихся именно переводов программ на другой язык? Гугл,сами понимаете,на чёрточку и скобочку не реагирует,но из того,что удалось найти, получается,что это какой-то древний define,который был ещё до ANSI
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/177129
Решение задачи: «Древние define-ы существовавшие до ANSI»
textual
Листинг программы
#include <stdio.h>
#define _(s) do { printf( "%s", s ); } while( 0 )
int main()
{
_("hello");
return 0;
}
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h, который содержит функции для ввода-вывода данных.
- Устанавливаем значение параметра order в 0.
- Задаем строку
helloв качестве аргумента для функции printf. - Выводим значение переменной order.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.