Цитата(shide_3 @ Oct 5 2012, 15:21)

Во-первых, что означает первая строка?
Это объявление
неинициализированной переменной NV_Data
типа tNV_Data в сегменте INFO. Причем это Тип tNV_Data это скорее всего структура или массив, нужно смотреть его определение. Причем это константная структура, т.к. декларируется в области Flash (сегмент INFO).
Цитата(shide_3 @ Oct 5 2012, 15:21)

Потом, по смыслу вроде как d = & NV_data; но в явном виде этого не написано.
Вовсе нет. Адрес буфера TempBuf типа unsigned char "насильно" приводится к адресу внешней переменной
типа tNV_Data и этот адрес присваивается указателю d.
Цитата(shide_3 @ Oct 5 2012, 15:21)

И для чего нужен TempBuf,
Спросите у разработчика

Скорее всего это какой-нибудь временный буфер для хранения
копии структуры NV_Data, которая где-то дальше будет записана (полностью или частично) в NV_Data.
Цитата(shide_3 @ Oct 5 2012, 15:21)

каким образом он потом переходит в NV_Data?
В приведенном вами фрагменте кода указатель d вовсе не указывает на NV_Data. d->Vref это ссылка на элемент Vref, расположенный по адресу в массиве TempBuf. А вот NV_Data.Vref - да, это уже явно адресованный элемент Vref из переменной (или структуры) NV_Data.