В функции с одним аргументом va_list я пытаюсь приписать список переменных согласно внешне определенной (заголовочный файл) структуре wifi_ap_record_t (другие значения для ясности опущены).
Определение типа в "wifi_ap_record_t_header_location.h" выглядит следующим образом, это внешняя библиотека, которую я не могу редактировать:
typedef struct {
uint8_t ssid[33]; /**< SSID of AP */
} wifi_ap_record_t;
При компиляции я получаю следующую ошибку:
error: dereferencing pointer to incomplete type 'const struct wifi_ap_record_t'
, который расстроен из-за указателя p->ssid
. Я попытался переопределить typedef с указателем и без него, а также определить пустую переменную wifi_ap_record
типа wifi_ap_record_t
.
Код как ниже, чего здесь не хватает?
#include "wifi_ap_record_t_header_location.h"
typedef struct wifi_ap_record_t* wifi_ap_record;
void function(va_list *ap) {
const struct wifi_ap_record_t *p = va_arg(*ap, const struct wifi_ap_record *);
printf("ssid: %s", p->ssid;
}