Studio:Scl struct sized: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
 (→Syntax)  | 
				 (→Syntax)  | 
				||
| Line 12: | Line 12: | ||
|-  | |-  | ||
| ''type-name''  | | ''type-name''  | ||
| Struct or<br>  | | Struct or<br>Pointer  | ||
| Specifies a structure type (or a pointer to such type) that is to be sized (allocated bytes beyond its type definition).  | | Specifies a structure type (or a pointer to such type) that is to be sized (allocated bytes beyond its type definition).  | ||
The following restrictions apply:  | The following restrictions apply:  | ||
Revision as of 23:41, 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 Pointer  | 
Specifies a structure type (or a pointer to such type) that is to be sized (allocated bytes beyond its type definition).
 The following restrictions apply: 
  | 
| max-size | Integer | 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.