Древние 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, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д