2 @page GRAS_tut_tour_pointers Lesson 13: Defining structure containing pointers (TODO)
4 \section GRAS_tut_tour_pointers_toc Table of Contents
5 - \ref GRAS_tut_tour_pointers_intro
6 - \ref GRAS_tut_tour_pointers_use
7 - \ref GRAS_tut_tour_pointers_recap
11 \section GRAS_tut_tour_pointers_intro Introduction
14 \section GRAS_tut_tour_pointers_use Defining structure containing pointers
17 \section GRAS_tut_tour_pointers_recap Recapping everything together
19 The program now reads:
22 Which produces the expected output:
23 include 12-pointers.output
29 #define MAX_ROUTESET 10
30 #define MAX_LEAFSET COLS
32 GRAS_DEFINE_TYPE(gras_row_t,
35 int row[COLS][MAX_ROUTESET];
38 typedef struct gras_row_t gras_row_t;
40 GRAS_DEFINE_TYPE(gras_welcome_msg_t,
41 struct gras_welcome_msg_t {
46 gras_row_t *rows GRAS_ANNOTE(size,row_count);
48 int leaves[MAX_LEAFSET];
51 void declare_ddt(void) {
52 gras_datadesc_type_t ddt;
54 gras_datadesc_set_const("COLS",COLS);
55 gras_datadesc_set_const("MAX_ROUTESET",MAX_ROUTESET);
56 gras_datadesc_set_const("MAX_LEAFSET",MAX_LEAFSET);
58 gras_datadesc_by_symbol(gras_row_t); /* Parse it before */
59 ddt=gras_datadesc_ref("welcome_msg_t*",gras_datadesc_by_symbol(gras_welcome_msg_t));
60 gras_msgtype_declare("welcome",ddt);