2015-04-04 3 views
-4

У меня возникла проблема с печатью атрибута c struct. Структура имеет целочисленный атрибут, называемый room_id, и все, что я пытаюсь сделать, это напечатать атрибут.Назначить переменную атрибуту в структуре

static void process_a_reading(struct reading_t reading) { 
     int r_id = reading.room_id; 
     printf("Room Id: %d", r_id); 
} 


struct reading_t { 
    int room_id ; 
    struct event_t event ; 
} ; 
+2

И когда вы пробовали это, результат был ...? (Является ли '' 'действительно там?) – Ryan

+1

Как называется' process_a_reading() '? Какой параметр для 'чтения' используется? –

ответ

0

read_t - обычная номенклатура, используемая при создании typedef. Я изменил пример, чтобы показать typedef, и заменил подпись функции, чтобы использовать тип typedef'd. Кроме того, я лично передал бы struct функции в качестве указателя.

typedef struct reading { 
    int room_id ; 
    struct event_t event ; 
} reading_t; 

static void 
process_a_reading(reading_t *reading) { 
    int r_id = reading->room_id; 
    printf("Room Id: %d", r_id); 
} 

int 
main(void) { 
     reading_t myReading = { 20, NULL }; 
     process_a_reading(&myReading); 
} 
+1

@WeatherVane Это не имеет смысла. Почему бы вам ответить на неправильный ответ. – 2501

+0

Это была ошибка в сообщении, но мой оператор печати ничего не печатает. – Stalfurion

+1

Хорошо, теперь почему бы вам передать указатель? «Лично» не является оправданием. – Ryan

Смежные вопросы