Studio:Scl struct sized: Difference between revisions
Jump to navigation
Jump to search
(→Syntax) |
No edit summary |
||
Line 6: | Line 6: | ||
#pragma scl_struct_sized(type-name, max-size) | #pragma scl_struct_sized(type-name, max-size) | ||
{| border="1" cellspacing="0" cellpadding="10" style="align:left;" | {| border="1" cellspacing="0" cellpadding="10" width="50" style="align:left;" | ||
| '''Parameters''' | | '''Parameters''' | ||
| '''Type''' | | '''Type''' | ||
Line 12: | Line 12: | ||
|- | |- | ||
| ''type-name'' | | ''type-name'' | ||
| Struct<br>Struct* | | Struct or<br>Struct* | ||
| Specifies a structure type that is to be sized (allocated bytes beyond its type definition). | | Specifies a structure type that is to be sized (allocated bytes beyond its type definition). | ||
The following restrictions apply: | The following restrictions apply: | ||
Line 22: | Line 22: | ||
|- | |- | ||
| ''max-size'' | | ''max-size'' | ||
| | | Field <br>(of type-name) | ||
| Specifies the number of bytes to be allocated for the sized struct. | | Specifies the number of bytes to be allocated for the sized struct. | ||
The following restrictions apply: | The following restrictions apply: |
Revision as of 23:37, 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 | Struct or Struct* |
Specifies a structure type that is to be sized (allocated bytes beyond its type definition).
The following restrictions apply:
|
max-size | Field (of type-name) |
Specifies the number of bytes to be allocated for the sized struct.
The following restrictions apply:
|
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(f.s, nSize);
Example 2
This example shows the declaration of a sized struct with 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.