Строка кода из примера для nRF24

Тема в разделе "Проводная и беспроводная связь", создана пользователем AlexVS, 1 авг 2014.

  1. AlexVS

    AlexVS Гик

    Здравствуйте.
    В коде примеров для nRF24 встречается строчка:
    Код (Text):
    printf_P(PSTR("*** WARNING *** Unknown message type %c\n\r"),header.type);
    Я понимаю что это вывод строки, но куда, не понятно? Если в монитор порта, то почему не Serial.print ?
    И для чего второй параметр?
     
  2. geher

    geher Гуру

    printf_P определено в библиотеке rf24 как просто printf.
    Реализацию самого printf не нашел, но подозреваю, что это вывод в Serial, поскольку никакой другой адекватной замены терминала для вывода данной функцией я не вижу.
    работает этот printf стандартно для языка с.
    Первый параметр - форматная строка, определяющая, как будут выводиться следующие за ней параметры.
    Данная строка представляет из себя текст, в котором встречаются определения, начинающиеся с символа %. Каждому такому определению должен соответствовать параметр соответствующего типа, символьное представление которого в соответствии с определением будет подставлено вместо определения.
    В данном конкретном случае параметр один, типа char ( %с ), который будет подставлен в выводе ближе к концу строки, непосредственно перед символами новой строки и перевода каретки.
     
    Megakoteyka нравится это.