As an extension, GNU C supports fixed-point types as defined in the N1169 draft of ISO/IEC DTR 18037. Support for fixed-point types in GCC will evolve as the draft technical report changes. Calling conventions for any target might also change. Not all targets support fixed-point types.
The fixed-point types are short _Fract, _Fract, long _Fract, long long _Fract, unsigned short _Fract, unsigned _Fract, unsigned long _Fract, unsigned long long _Fract, _Sat short _Fract, _Sat _Fract, _Sat long _Fract, _Sat long long _Fract, _Sat unsigned short _Fract, _Sat unsigned _Fract, _Sat unsigned long _Fract, _Sat unsigned long long _Fract, short _Accum, _Accum, long _Accum, long long _Accum, unsigned short _Accum, unsigned _Accum, unsigned long _Accum, unsigned long long _Accum, _Sat short _Accum, _Sat _Accum, _Sat long _Accum, _Sat long long _Accum, _Sat unsigned short _Accum, _Sat unsigned _Accum, _Sat unsigned long _Accum, _Sat unsigned long long _Accum.
Fixed-point data values contain fractional and optional integral parts. The format of fixed-point data varies and depends on the target machine.
Support for fixed-point types includes:
++, --) +, -, !) +, -, *, /) <<, >>) <, <=, >=, >) ==, !=) +=, -=, *=, /=, <<=, >>=) Use a suffix in a fixed-point literal constant:
hr’ or ‘HR’ for short _Fract and _Sat short _Fract r’ or ‘R’ for _Fract and _Sat _Fract lr’ or ‘LR’ for long _Fract and _Sat long _Fract llr’ or ‘LLR’ for long long _Fract and _Sat long long _Fract uhr’ or ‘UHR’ for unsigned short _Fract and _Sat unsigned short _Fract ur’ or ‘UR’ for unsigned _Fract and _Sat unsigned _Fract ulr’ or ‘ULR’ for unsigned long _Fract and _Sat unsigned long _Fract ullr’ or ‘ULLR’ for unsigned long long _Fract and _Sat unsigned long long _Fract hk’ or ‘HK’ for short _Accum and _Sat short _Accum k’ or ‘K’ for _Accum and _Sat _Accum lk’ or ‘LK’ for long _Accum and _Sat long _Accum llk’ or ‘LLK’ for long long _Accum and _Sat long long _Accum uhk’ or ‘UHK’ for unsigned short _Accum and _Sat unsigned short _Accum uk’ or ‘UK’ for unsigned _Accum and _Sat unsigned _Accum ulk’ or ‘ULK’ for unsigned long _Accum and _Sat unsigned long _Accum ullk’ or ‘ULLK’ for unsigned long long _Accum and _Sat unsigned long long _Accum GCC support of fixed-point types as specified by the draft technical report is incomplete:
Fixed-point types are supported by the DWARF 2 debug information format.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Fixed_002dPoint.html