Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > C Code > Generating C Code > Overview of generating C code (C code) > Overview of modeling C code (C code) > Overview of modeling C code (C code) > Overview of the C profile package (C code)
  
Overview of the C profile package (C code)
The C Profile package contains Stereotypes and Tag Definitions required for modeling C code in the model. Through the Tag Definitions in the C profile, you can model information such as array specs, CV qualifiers and indirections. In addition, the C Profile package contains some Basic Types, such as char, double and float.
If you reverse engineer C code to a model that does not contain the C profile, the Reverser creates a C Profile in the Model; however, the C profile it creates may contain only the Stereotypes and Tag Definitions required for the code you reverse engineered, and each Stereotype and Tag Definition of the C Profile package will not include a description of its purpose:
If you want to add a complete and documented C profile to a Model that does not contain the C Profile package, see .
If the Reverser has created a C profile in your Model and you want to update it so that it is complete and includes the Stereotype and Tag Definition descriptions, see .
* 
ACS does not generate code for the C profile.
Do not make changes to the C profile. Any changes you make will be lost when the profile is updated.
Note that you can create Tag Definitions outside of the C profile, and link those Tag Definitions to Stereotypes in the C profile. When the C profile is updated, the links will not be broken.
Do not create copies of the C profile within a model, or create copies of the C profile through XMI Import/Export. The copies of the C profile will not work correctly and you will not be able to update the copies through the Update All Profiles command.
Important:
The C Profile package includes the following Stereotypes and Tag Definitions:
«C Attribute» applies the following Tag Definitions to an Attribute:
C Anonymous Item - specifies that the attribute is generated with no name.
C Array Spec - specifies array text, that is, the array text between the brackets.
C Bitfield - specifies bitfield width text.
C CV Qualifier - specifies a CV qualifier, that is, const, volatile, or const volatile.
C Function Pointer Parameters - specifies the function pointer parameters for an Attribute that is of type 'pointer to function'.
C Function Pointer Return - specifies the function pointer return for an Attribute that is of type 'pointer to function'.
C Indirection - specifies indirection text, such as, *, & or * const.
C Storage Class - specifies a storage class keyword, that is, blank, static, auto, register or extern.
«C Class» applies the following Tag Definitions to a Class, Data Type or Interface:
C Anonymous Item - specifies that the struct is generated inline.
C Forward Declarations - specifies forward declarations to structs, unions and enums by referencing those Classes, Data Types, Interface and Type Definitions in the Model.
C Forward Declaration Text - specifies forward declarations to structs, unions and enums that cannot be referenced through the C Forward Declaration tag definition.
C Generate State Machine - specifies whether state machine code is generated for the Class' or Interface's State Diagram.
C Header File - retrieves the location of generated or reverse engineered files from the registry and is used to generate #include statements. Note that this is used when opening a source file from Modeler.
C Header File Comment - specifies the text of the header file comment.
C Header Include - specifies #includes text for the header file.
C Implementation File Comment - specifies the text of the implementation file comment.
C Implementation Include - specifies #includes text for the implementation file.
C Non Member - specifies that a nested struct is generated in the code file created for its root item, but not as part of the struct created for the root item.
C Source File - retrieves the location of generated or reverse engineered files from the registry. Note that this is used when opening a source file from Modeler.
«C Dependency» applies the following Tag Definitions to a Dependency:
C In Implementation - specifies that a #include should be generated in both the header and implementation files.
C Is System - specifies that angled brackets, rather than inverted commas, are used for the #includes.
«C Enum Literal» applies the following Tag Definitions to an Enumeration Literal:
C Expression - specifies expression text.
C Prefix Name - specifies whether the enumeration literal is prefixed with the name of the owning typedef suffixed with an underscore.
«C Enumeration» applies the following Tag Definitions to an Enumeration:
C Anonymous Item - specifies that the enumeration is generated inline.
«C Ignore»- specifies that no #include statements are generated for a Dependency.
«C Library»- applies the following Tag Definitions to a Package, Class, Data Type or Interface:
C LIB_INCLUDE – for a library Class, specifies the #includes to be generated for structs that use that library.
«CMacro»- specifies that an Operation is generated as function macro.
«C Module»- specifies that a struct is not generated for the Class, Data Type or Interface, but header and implementation files are as required.
«C Operation» applies the following Tag Definitions to an Operation:
C CV Qualifier - specifies a CV qualifier, that is, const, volatile, or const volatile.
C Function Pointer Parameters- specifies the function pointer parameters for an Operation that is of type 'pointer to function'.
C Function Pointer Return - specifies the function pointer return for an Operation that is of type 'pointer to function'.
C Indirection - specifies indirection text, such as, *, & or * const.
C Inline - specifies that the Operation uses the inline keyword.
C Operation Implementation Comment - specifies comments for the Operation implementation.
C Storage Class - specifies a storage class keyword, that is, blank, static, auto, register or extern.
«C Package» applies the following Tag Definitions to the Model or Package:
C Header Include - specifies #includes text for the header file.
C Implementation Include - specifies #includes text for the implementation file.
«C Parameter» applies the following Tag Definitions to a Parameter:
C Anonymous Item - specifies that the parameter is generated with no name.
C Array Spec - specifies array text, that is, the array text between the brackets.
C CV Qualifier - specifies a CV qualifier, that is, const, volatile, or const volatile.
C Function Pointer Parameters - specifies the function pointer parameters for a Parameter that is of type 'pointer to function'.
C Function Pointer Return- specifies the function pointer return for a Parameter that is of type 'pointer to function'.
C Indirection - specifies indirection text, such as, *, & or * const.
C Storage Class - specifies a storage class keyword, that is, blank, static, auto, register or extern.
«C Role» applies the following Tag Definitions to a Role:
C Array Spec - specifies array text, that is, the array text between the brackets.
C CV Qualifier - specifies a CV qualifier, that is, const, volatile, or const volatile.
C Indirection - specifies indirection text, such as, *, & or * const.
C Storage Class - specifies a storage class keyword, that is, blank, static, auto, register or extern.
«C Typedef» applies the following Tag Definitions to a Type Definition:
C Array Spec - specifies array text, that is, the array text between the brackets.
C CV Qualifier - specifies a CV qualifier, that is, const, volatile, or const volatile.
C Function Pointer Parameters - specifies the function pointer parameters for a Type Definition that is of type 'pointer to function'.
C Function Pointer Return - specifies the function pointer return for a Type Definition that is of type 'pointer to function'.
C Indirection - specifies indirection text, such as, *, & or * const.