![]() |
![]() |
![]() |
![]() |
Macro for creating statically initialized argument lists
#define Pt_ARG( type, value, len ) { ... }
ph
This macro lets you have statically initialized argument lists as an alternative to using PtSetArg(). For example, instead of:
PhPoint_t pos; PtArg_t args[ 2 ]; pos.x = 100; pos.y = 150; PtSetArg( &args[0], Pt_ARG_POS, &pos, 0 ); PtSetArg( &args[1], Pt_ARG_TEXT_STRING, "Blah", 0 ); PtCreateWidget( PtLabel, NULL, 2, args );
you can write:
static const PhPoint_t pos = { 100, 150 };
static const PtArg_t args[] = {
Pt_ARG( Pt_ARG_POS, &pos, 0 ),
Pt_ARG( Pt_ARG_TEXT_STRING, "Blah", 0 )
};
PtCreateWidget( PtLabel, NULL,
sizeof(args) / sizeof(args[0]), args );
This makes adding or removing items easier and safer because the compiler counts the items in the array for you. And as a bonus, it generates less code than the first version.
![]() |
If you have to calculate some of the values at runtime, you'll need to use PtSetArg() to initialize the argument list. |
Photon
| Safety: | |
|---|---|
| Interrupt handler | No |
| Signal handler | No |
| Thread | No |
Pt_ARG() is a macro.
PtArg_t, PtGetResource(), PtGetResources(), PtSetArg(), PtSetResource(), PtSetResources()
Manipulating Resources in Application Code chapter of the Photon Programmer's Guide.
![]() |
![]() |
![]() |
![]() |