CStruct[name,members]
is a symbolic representation of a struct.
CStruct[name]
declares a struct without specifying the contents.
CStruct[None,members]
does not give the struct a name.
CStruct
CStruct[name,members]
is a symbolic representation of a struct.
CStruct[name]
declares a struct without specifying the contents.
CStruct[None,members]
does not give the struct a name.
Details and Options
- SymbolicC expressions are inert; they evaluate to themselves, staying in an unevaluated form.
- SymbolicC expressions can be converted into a C string with ToCCodeString.
- The members of the struct can be specified with lists or with CDeclare.
Examples
Basic Examples (1)
To use SymbolicC, you first need to load the package:
Needs["SymbolicC`"]CStruct["point", {{"double", "x"}, {"double", "y"}}]//ToCCodeStringYou can use CDeclare to declare the members of the struct:
CStruct["point", {CDeclare["double", "x"], CDeclare["double", "y"]}]//ToCCodeStringYou can drop the name for the struct by using a specification of None:
CDeclare[ CStruct[None, {{"double", "x"}, {"double", "y"}}], "pt1"]//ToCCodeStringYou can drop the contents of the struct to make an incomplete type:
CStruct["intlist", {{"int", "value"}, {CStruct["intlist"], CDereference["next"]}}]//ToCCodeStringYou can use an incomplete type with a typedef:
CTypedef[ CStruct["point"], CDereference["pt1"]]//ToCCodeStringYou can nest a union inside a struct:
CStruct["value", {{"int", "type"}, {CUnion[None, {{"int", "ival"}, {"double", "dval"}}], "data"}}]//ToCCodeStringSee Also
Tech Notes
Related Guides
Text
Wolfram Research (2010), CStruct, Wolfram Language function, https://reference.wolfram.com/language/SymbolicC/ref/CStruct.html.
CMS
Wolfram Language. 2010. "CStruct." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/SymbolicC/ref/CStruct.html.
APA
Wolfram Language. (2010). CStruct. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/SymbolicC/ref/CStruct.html
BibTeX
@misc{reference.wolfram_2026_cstruct, author="Wolfram Research", title="{CStruct}", year="2010", howpublished="\url{https://reference.wolfram.com/language/SymbolicC/ref/CStruct.html}", note=[Accessed: 15-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_cstruct, organization={Wolfram Research}, title={CStruct}, year={2010}, url={https://reference.wolfram.com/language/SymbolicC/ref/CStruct.html}, note=[Accessed: 15-June-2026]}