### Function Macro

# GObject DEFINE_DYNAMIC_TYPE

since: 2.14

#### Declaration

    #define G_DEFINE_DYNAMIC_TYPE (
      TN,
      t_n,
      T_P
    )

#### Description

A convenience macro for dynamic type implementations, which declares a class initialization function, an instance initialization function (see `GTypeInfo` for information about these) and a static variable named `t_n`_parent_class pointing to the parent class.

Furthermore, it defines a `*_get_type()` and a static `*_register_type()` functions for use in your `module_init()`.

See G_DEFINE_DYNAMIC_TYPE_EXTENDED() for an example.

Available since: 2.14

This function is not directly available to language bindings.

#### Parameters

`TN`

  Type: `-`

  The name of the new type, in Camel case.

`t_n`

  Type: `-`

  The name of the new type, in lowercase, with words separated by ‘_’.

`T_P`

  Type: `-`

  The `GType` of the parent type.