#arrays #c #macros
#массивы #c #макросы
Вопрос:
У меня нет опыта в C, и у меня есть вопрос. Я хотел спросить, как считывать шестнадцатеричные числа и попадать в массив
#define configMAC_ADDR
{
0x02, 0x12, 0x13, 0x10, 0x15, 0x11
}
Ответ №1:
Макрос такой же, как и запись { 0x02, 0x12, 0x13, 0x10, 0x15, 0x11 }
. Итак, там, где вы обычно записывали бы этот список инициализаторов в своем исходном коде, напишите configMAC_ADDR
вместо этого. В данном случае это просто замена текста.
Символ может появиться в любом месте кода C и означает разрыв строки исходного кода. Вы можете использовать его, чтобы разбить длинную строку кода на несколько и заставить компилятор по-прежнему обрабатывать их как одну строку, поэтому он обычно используется для макросов. Без этого вам пришлось бы записать макрос как:
#define configMAC_ADDR { 0x02, 0x12, 0x13, 0x10, 0x15, 0x11 }
Что эквивалентно на 100%, но в некоторых случаях менее читаемо.
Комментарии:
1. … и «список инициализаторов», безусловно, правильный термин. Текст замены макроса не может рассматриваться как представляющий массив, хотя он может быть использован для его инициализации.
2. Да… расширенная задача инициализации массива целых чисел и последующей замены списка инициализаторов одним словом намеренно оставлена читателю в качестве упражнения.