X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/802995000d96fee0ef54092aab522b7b320e387e..e5922b4dce28002422ca9d68a4c44521f67c0f6f:/doc/gtut-tour-13-pointers.doc diff --git a/doc/gtut-tour-13-pointers.doc b/doc/gtut-tour-13-pointers.doc index f75d57490a..3c0f6a9500 100644 --- a/doc/gtut-tour-13-pointers.doc +++ b/doc/gtut-tour-13-pointers.doc @@ -7,9 +7,15 @@ long otherwise, the lesson is organized as a FAQ, with little examples of how to do things. \section GRAS_tut_tour_pointers_toc Table of Contents + - \ref GRAS_tut_tour_pointers_intro + - \ref GRAS_tut_tour_pointers_use + - \ref GRAS_tut_tour_pointers_recap - \ref GRAS_tut_tour_pointers_cste
+\section GRAS_tut_tour_pointers_intro Introduction to pointers in datadesc +\section GRAS_tut_tour_pointers_use Using pointers in datadesc +\section GRAS_tut_tour_pointers_recap Recapping everything \section GRAS_tut_tour_pointers_cste How to have constants in parsed structures? @@ -34,6 +40,30 @@ void declare_ddt() { */ + and the this example do use structures as payload, + so we have to declare it to GRAS. Hopefully, this can be done easily by enclosing + the structure declaration within a \ref GRAS_DEFINE_TYPE macro call. It will then copy this + declaration into an hidden string variable, which can be automatically parsed at + run time. Of course, the declaration is also copied unmodified by this macro, so that it + gets parsed by the compiler also. + + There is some semantic that GRAS cannot guess alone and you need to annotate + your declaration to add some. For example, the ctn pointer can be a reference to an + object or a whole array (in which case you also has to specify its size). This is done + with the GRAS_ANNOTE call. It is removed from the text passed to the compiler, but it helps + GRAS getting some information about the semantic of your data. Here, it says that \a ctn is an + array, which size is the result of the operation \a rows * \a cols (with \a rows and \a cols + being the other fields of the structure). + + Please note that this annotation mechanism is not as robust and cool as this example seems to + imply. If you want to use it yourself, you'd better use the exact right syntax, which is + detailed in the \ref GRAS_dd section. + + \skip GRAS_DEFINE_TYPE + \until matrix_t + + + #define COLS 16 #define MAX_ROUTESET 10 #define MAX_LEAFSET COLS