waffle_feature_test_macros 7
waffle_feature_test_macros Macros to control definitions exposed by Waffle's headers

Waffle Manual

waffle

    WAFFLE_API_VERSION
    WAFFLE_API_EXPERIMENTAL

## Description

Waffle's feature test macros allow the programmer to control the definitions that are exposed by Waffle's headers when a program is compiled. Conversely, the macros allow the programmer to control which Waffle features a program's source relies on.

In order to be effective, a feature test macro must be defined before including any header files. This can be done either in the compilation command (cc -DMACRO=value) or by defining the macro within the source code before including any headers.

### Specification of feature test macro requirements in manual pages

When a function requires that a feature test macro be defined, the manual page docments it in the SYNOPSIS. When an enum or macro requires that a feature test macro be defined, the manual page documents it either in the SYNOPSIS or where the enum or macro first appears in the page.

### List of feature test macros

`WAFFLE_API_VERSION` (since waffle 1.3)

  This macro controls the API version exposed by Waffle's headers. The value `((major << 8) | minor)` exposes the API of Waffle major.minor. For example, the value 0x0103 exposes the API of Waffle 1.3. If this macro is undefined, then the headers expose the API of Waffle 1.2.

`WAFFLE_API_EXPERIMENTAL`

  This macro exposes experimental features in Waffle's headers. Experimental features may be altered or removed without notice and do not belong to Waffle's stable API.

## See Also

- waffle 7
,
- feature_test_macros 7