C99 Extensions in TI Compilers
From Texas Instruments Embedded Processors Wiki
Translate this page to
Introduction
TI compilers support the C99 language (ISO/IEC 9899:1999). However, the TI compilers are not (yet) conforming compilers. This means that only some of the many language constructs introduced in C99 are available. Many of these language features are available because they are also included in the GCC extensions supported in the TI compilers in Relaxed ANSI mode.
For a good summary of all the features introduced by C99 see this list. (It also describes the state of implementation of these in the popular GNU Compiler Collection C compiler (gcc)).
Features
| Code | Availability |
|---|---|
| A | Always |
| NS | Except in strict ANSI mode |
| R | Relaxed ANSI mode |
In compilers released prior to late-2010, "R" => --gcc option needed instead of Relaxed ANSI mode
| Feature | When | Comments |
|---|---|---|
| Restricted pointers | R | restrict keyword
|
| Flexible array member | R | Support GCC [0], not C99 [] |
long long type | A | -- |
| Universal character names | R | \u and \U
|
| Compound literals | R | -- |
| Non-constant initializers | R | -- |
| Designated initializers | R | -- |
C++ style // comments | NS | -- |
inttypes.h | A | -- |
stdint.h | A | -- |
| Mixed declarations and code | NS | -- |
| Variadic macros | R | -- |
Additional math functions in math.h | A | cosf, acosh, exp2 et al. for ARM, C6x and C55x only
|
inline keyword | NS | -- |
snprintf family of functions in stdio.h | A | -- |
stdbool.h | A | -- |
_Pragma preprocessor operator | A | -- |
__func__ predefined identifier | R | -- |
| Conversion of array to pointer not limited to Lvalues | R | -- |
