---
name: "FFI::C::Struct"
section: "3pm"
platform: "linux"
package: "libffi-c-perl"
version: "0.15-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/FFI::C::Struct"
---

# FFI::C::Struct(3pm)

Structured data instance for FFI

## NAME

FFI::C::Struct - Structured data instance for FFI

## VERSION

version 0.15

## SYNOPSIS

```
 use FFI::C::StructDef;

 my $def = FFI::C::StructDef->new(
   name  => 'color_t',
   class => 'Color',
   members => [
     red   => 'uint8',
     green => 'uint8',
     blue  => 'uint8',
   ],
 );

 my $red = $def->create({ red => 255 });    # creates a FFI::C::Stuct

 printf "[%02x %02x %02x]\n", $red->red, $red->green, $red->blue;  # [ff 00 00]

 # that red is too bright!
 $red->red(200);

 printf "[%02x %02x %02x]\n", $red->red, $red->green, $red->blue;  # [c8 00 00]

 my $green = Color->new({ green => 255 });  # creates a FFI::C::Stuct

 printf "[%02x %02x %02x]\n", $green->red, $green->green, $green->blue;  # [00 ff 00]
```

## DESCRIPTION

This class represents an instance of a C `"struct"`.  This class can be created using `"new"` on the generated class, if that was specified for the FFI::C::StructDef, or by using the `"create"` method on FFI::C::StructDef.

For each member defined in the FFI::C::StructDef there is an accessor for the FFI::C::Struct instance.

## CONSTRUCTOR

### new

```
 FFI::C::StructDef->new( class => 'User::Struct::Class', ... );
 my $instance = User::Struct::Class->new;
```

Creates a new instance of the `"struct"`.

## SEE ALSO

- FFI::C

  - FFI::C::Array

  - FFI::C::ArrayDef

  - FFI::C::Def

  - FFI::C::File

  - FFI::C::PosixFile

  - FFI::C::Struct

  - FFI::C::StructDef

  - FFI::C::Union

  - FFI::C::UnionDef

  - FFI::C::Util

  - FFI::Platypus::Record

  ## AUTHOR

Graham Ollis \<plicease@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2020-2022 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
