2015-04-04 167 views
-4

我无法打印c结构的属性。该结构有一个名为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 2015-04-04 19:59:00

+1

如何调用process_a_reading()? “读”的哪个参数被使用? – 2015-04-04 20:05:24

回答

0

reading_t是制作typedef时使用的常规命名法。我修改了示例以显示typedef,并将函数签名替换为使用typedef'd类型。另外,我会亲自将结构作为指针传递给函数。

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 2015-04-04 20:01:31

+0

这是帖子中的错误,但我的打印声明仍然没有打印任何内容。 – Stalfurion 2015-04-04 20:01:40

+1

好的,现在你为什么要传递一个指针? “个人”不是理由。 – Ryan 2015-04-04 20:05:09