Я новичок в разработке C и Arduino и задаюсь вопросом, что здесь происходит. Код должен печатать ответ из HTTP-запроса, но вместо этого он отключается примерно через 300 байт.Что происходит в этом коде C/Arduino?
static void my_callback (byte status, word off, word len) {
Ethernet::buffer[off+300] = 0; // <--
Serial.print((const char*) Ethernet::buffer + off); // <--
}
В JavaScript Ethernet::buffer[off+300] = 0
будет означать, вы присваиваете значение 0
к чему-то в объекте или массив, в положении [off+300]
. Почему это делается здесь до результат возвращается или вообще?
Далее добавляется значение Ethernet::buffer
к значению off
(что является числом). Таким образом, результат должен быть числом, но вместо этого это строка.
Любое понимание того, что здесь происходит, было бы действительно оценено. Благодарю.
Источник: EtherCard examples
Это не C, может быть C++. – Lundin
Чтобы прочитать этот код, вам нужно понять указатели и арифметику указателя. Начать обучение [здесь] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list) – Drop
@ Lundin: Arduino тоже не совсем C++. – Olaf