Studio:Scl struct sized: Difference between revisions
Jump to navigation
Jump to search
(New page: = The scl_struct_sized pragma = The scl_struct_sized pragma identifies a particular struct or pointer-to-struct as a sized structure. A sized structure typically has bytes allocated past ...) |
(→Syntax) |
||
Line 13: | Line 13: | ||
| ''type-name'' | | ''type-name'' | ||
| Type | | Type | ||
| | | Pointer-to-Struct or Struct<br> | ||
* structure | * The structure type may not be pointed to by a sized pointer. | ||
* | * The structure type may not be a member of any other structure or union. | ||
* function | * The structure type may not be passed as a function parameter. | ||
* The structure type may only reside in IN/INOUT memory blocks. | |||
* If the last member of the structure is an array, the array's size is calculated based upon max-size - (size of struct's other members). | |||
|- | |- | ||
| ''max-size'' | | ''max-size'' | ||
| Integer | | Integer | ||
| Specifies the number of bytes for the sized struct. | | Specifies the number of bytes for the sized struct. | ||
* The value contained by max_size may not be less than the structure's type size. | |||
* The max-size value must be an integral type (int, short, char). | |||
* The max-size may not exceed the maximum payload size. | |||
* The max_size must reside in the same payload block as the sized struct (no indirection '*' or '->'). | |||
|} | |} | ||
Revision as of 00:49, 31 October 2008
The scl_struct_sized pragma
The scl_struct_sized pragma identifies a particular struct or pointer-to-struct as a sized structure. A sized structure typically has bytes allocated past its type definition.
Syntax
#pragma scl_struct_sized(type-name, max-size)
Parameters | Type | Description |
type-name | Type | Pointer-to-Struct or Struct
|
max-size | Integer | Specifies the number of bytes for the sized struct.
|
Examples
Example 1
This example shows the declaration for a simple sized struct.
typedef struct {
int nSize;
int nSomeJunk;
int nMoreJunk;
} SimpleSizedStruct;
extern void f(SimpleSizedStruct s);
#pragma scl_struct_sized(SimpleSizedStruct, nSize);
Example 2
This example shows the declaration for a simple sized struct using a pointer.
typedef struct {
int nSize;
int nSomeJunk;
int nMoreJunk;
} SimpleSizedStruct;
extern void f(SimpleSizedStruct* s);
#pragma scl_struct_sized(f.s, nSize);
Example 2
This example shows the declaration of a sized struct containing a conformant array.
#define SOME_BOUND 0
typedef struct {
int nSize;
int nSomeJunk;
int ary[SOME_BOUND];
} ConformantArraySizedStruct;
extern void f(SimpleSizedStruct* s);
#pragma scl_struct_sized(f.s, nSize);
See Also
- For additional information on scl_string, including constraints, refer to the section on scl_struct_sized in the SCL Reference Guide.