Ansi Compliance
Ansi Compliance
Full Compliance
Complies except for noted item
Not implemented
Part 5 Environment:
5.1.1.1 Program structure architectures, double
5.1.1.2 Translation phases is the same as float.
On 8-bit architectures,
5.1.1.3 Diagnostics all data types other
5.1.2 Execution than float are
environment unsigned by default.
5.1.2.1 Freestanding The processor is put 6.1.2.6 Compatible types
environment to sleep when the and composite types
program terminates. 6.1.3 Constants
5.1.2.2 Hosted environment This does not apply
6.1.3.1 Floating constants
to an embedded
target. 6.1.3.2 Integer constants
5.1.2.3 Program execution Reentrancy is not 6.1.3.3 Enumeration
permitted. constants
5.2.1 Character sets 6.1.3.4 Character constants
5.2.1.1 Trigraph sequences 6.1.4 String literals
5.2.1.2 Multibyte characters This optional 6.1.5 Operators
paragraph applies to 6.1.6 Punctuators
non-western
languages. No 6.1.7 Header names
support is provided 6.1.8 Preprocessing
for such languages. numbers
5.2.2 Character display 6.1.9 Comments
semantics
6.2 Conversions
5.2.3 Signals and interrupts Reentrancy permitted
on some PIC 6.2.1.1 Characters and
architectures, not integers
enabled by default. 6.2.1.2 Signed and
5.2.4.1 Translation limits unsigned integers
6.2.1.3 Floating and integral
6.2.1.4 Floating types
Part 6 Language: 6.2.1.5 Usual arithmetic
6.1 Lexical elements conversions
6.1.1 Keywords 6.2.2.1 Lvalues and function
designators
6.1.2 Identifiers
6.2.2.2 Void
6.1.2.1 Scopes of identifiers
6.2.2.3 Pointers
6.1.2.2 Linkage of identifiers
6.3 Expressions
6.1.2.3 Name spaces of
identifiers 6.3.1 Primary expressions
6.1.2.4 Storage duration of 6.3.2 Postfix operators
objects 6.3.2.1 Array subscripting
6.1.2.5 Types Pointers to ROM are 6.3.2.2 Function calls See 5.2.3 for
not supported on all information about
architectures. Long recursive/reentrant
double is not functions.
supported. On 8-bit
6.5.6 Type definitions
6.3.2.3 Structure and union 6.5.7 Initialization
members
6.6 Statements
6.3.2.4 Postfix increment 6.6.1 Labeled statements
and decrement
6.6.2 Compound statement,
or block
6.3.3 Unary operators
6.6.3 Expression and null
6.3.3.1 Prefix increment and
statements
decrement
6.3.3.2 Address and Pointers to bits are not
6.6.4 Selection statements
indirection operators permitted. Pointers to 6.6.4.1 The if statement
ROM are not 6.6.4.2 The switch
supported on all statement
architectures. 6.6.5 Iteration statements
6.3.3.3 Unary arithmetic 6.6.5.1 The while statement
operators 6.6.5.2 The do statement
6.3.3.4 The size of operator 6.6.5.3 The for statement
6.3.4 Cast operators 6.6.6 Jump statements
6.3.5 Multiplicative 6.6.6.1 The goto statement
operators
6.6.6.2 The continue
6.3.6 Additive operators
statement
6.3.7 Bitwise shift operators 6.6.6.3 The break statement
6.3.8 Relational operators 6.6.6.4 The return statement
6.3.9 Equality operators 6.7 External definitions
6.3.10 Bitwise AND 6.7.1 Function definitions
operator
6.7.2 External object
6.3.11 Bitwise exclusive OR
definitions
operator
6.8 Preprocessing directives
6.3.12 Bitwise inclusive OR
operator 6.8.1 Conditional inclusion
6.3.13 Logical AND 6.8.2 Source file inclusion
operator 6.8.3 Macro replacement
6.3.14 Logical OR operator 6.8.3.1 Argument
6.3.15 Conditional operator substitution
6.3.16 Assignment operator 6.8.3.2 The # operator
6.3.16.1 Simple assignment 6.8.3.3 The ## operator
6.3.16.2 Compound 6.8.3.4 Rescanning &
assignment further replacement
6.3.17 Comma operator 6.8.3.5 Scope of macro
6.4 Constant expression definitions
6.5 Declarations
6.8.4 Line control
6.5.1 Storage-class
6.8.5 Error directive
specifiers 6.8.6 Pragma directive
6.5.2 Type specifiers See note on 6.1.2.5 6.8.7 Null directive
6.8.8 Predefined macro __STDC__ is not
6.5.2.1 Structure and union names #defined since the
specifiers CCS implementation
6.5.2.2 Enumeration is not 100%
specifiers compliant.
6.5.2.3 Tags 6.9 Future language
directions
6.5.3 Type qualifiers
6.5.4 Declarators
6.5.4.1 Pointer declarators Pointers to ROM are
not supported on all Part 7 Library:
architectures.
7.1.1 Definition of terms
6.5.4.2 Array declarators
7.1.2 Standard headers See notes on 7.9.6
6.5.4.3 Function declarators
6.5.5 Type names See note on 6.1.2.5
7.1.3 Reserved identifiers
7.1.4 Errors <errno.h> 7.5.6.1 The ceil function
7.1.5 Limits <float.h> and 7.5.6.2 The fabs function
<limits.h> 7.5.6.3 The floor function
7.1.6 Common definitions 7.5.6.4 The fmod function
<stddef.h>
7.6 Non local jumps The stack is not
7.1.7 Use of library <setjmp.h> cleaned up on 12 and
functions 14-bit parts, since
7.2 Diagnostics <assert.h> these parts do not
7.2.1.1 The assert macro allow access to the
7.3 Character handling stack.
<ctype.h> 7.6.1.1 The setjmp function
7.3.1 Character-testing 7.6.1.2 The longjmp function
functions 7.7 Signal handling
7.3.1.1 The isalnum function <signal.h>
7.3.1.2 The isalpha function 7.7.1.1 The signal function
7.3.1.3 The iscntrl function 7.7.2.1 The raise function
7.3.1.4 The isdigit function 7.8 Variable arguments
7.3.1.5 The isgraph function <stdarg.h>
7.9 Input/output <stdio.h> A file system library is
7.3.1.6 The islower function
included that works
7.3.1.7 The isprint function with MMC/SD cards,
7.3.1.8 The ispunct function and can be adapted
7.3.1.9 The isspace function to other storage
7.3.1.10 The isupper mediums. The file
function system library does
7.3.1.11 The isxdigit not follow standard C
function conventions, but is
comparable. RS232
7.3.2 Character mapping character I/O
function
functions are
7.3.2.1 The tolower function provided for all
7.3.2.2 The toupper function compilers and is built
7.4 Localization <locale.h> Provided for into the compiler.
compatibility, 7.9.1 Introduction See note on 7.9
however nothing
special is done. 7.9.2 Streams
7.5 Mathematics <math.h> 7.9.3 Files See note on 7.9.1
7.5.1 Treatment of error 7.9.4 Operations on files above.
condition 7.9.5 File access functions
7.5.2 Trigonometric 7.9.6 Formatted input/output The following
functions functions functions are absent:
7.5.2.1 The acos function vfprintf, vprintf,
7.5.2.2 The asin function vsprintf
7.9.6.1 The fprintf function In order to provide
7.5.2.3 The atan function
efficient
7.5.2.4 The atan2 function implementation, there
7.5.2.5 The cos function are some limitations
7.5.2.6 The sin function imposed. For
7.5.2.7 The tan function example, the
formatting string must
7.5.3.1 The cosh function
be a constant string
7.5.3.1 The sinh function known at compile
7.5.3.1 The tanh function time.
7.5.4.1 The exp function 7.9.6.2 The fscanf function
7.5.4.2 The frexp function 7.9.6.3 The printf function See note on 7.9.6.1
7.5.4.3 The ldexp function
7.5.4.4 The log function 7.9.6.4 The scanf function
7.5.4.5 The log10 function 7.9.6.5 The sprintf function
7.5.4.6 The modf function 7.9.6.6 The sscanf function
7.5.5.1 The pow function 7.9.7 Character input/output
function
7.5.5.2 The sqrt function
7.9.7.1 The fgetc function 7.10.7.3 The wctomb
7.9.7.2 The fgets function function
7.9.7.3 The fputc function 7.10.8.1 The mbstowcs
function
7.9.7.4 The fputs function
7.11 String handling
7.9.7.5 The getc function <string.h>
7.9.7.6 The getchar function 7.11.1 String function
7.9.7.7 The gets function conventions
7.9.7.8 The putc function 7.11.2 Copying functions
7.9.7.9 The putchar function 7.11.2.1 The memcpy
7.9.7.10 The puts function function
7.9.7.11 The ungetc See note on 7.9.1 7.11.2.2 The memmove
function above. function
7.9.8 Direct input/output 7.11.2.3 The strcpy function
functions 7.11.2.4 The strncpy
7.9.9 File positioning function
functions 7.11.3 Concatenation
7.9.10 Error-handling functions
functions
7.11.3.1 The strcat function
7.10 General utilities
<stdlib.h>
7.11.3.2 The stncat function
7.10.1.1 The atof function
7.11.4 Comparison
functions
7.10.1.2 The atoi function
7.11.4.1 The memcmp
7.10.1.3 The atol function function
7.10.1.4 The strtod function 7.11.4.2 The strcmp
7.10.1.5 The strtol function function
7.10.1.6 The strtoul function 7.11.4.3 The strcoll function
7.10.2.1 The rand function 7.11.4.4 The strncmp
7.10.2.2 The srand function function
7.10.3.1 The calloc function 7.11.4.5 The strxfrm
function
7.10.3.2 The free function
7.11.5 Search functions
7.10.3.3 The malloc function
7.11.5.1 The memchr
7.10.3.4 The realloc function function
7.10.4.1 The abort function 7.11.5.2 The strchr function
7.10.4.2 The atexit function 7.11.5.3 The strcspn
7.10.4.3 The exit function function
7.10.4.4 The getenv 7.11.5.4 The strpbrk
function function
7.10.4.5 The system 7.11.5.5 The strrchr function
function 7.11.5.6 The strspn function
7.10.5.1 The bsearch 7.11.5.7 The strstr function
function
7.11.5.8 The strtok function
7.10.5.2 The qsort function The algorithm
provided is the shell- 7.11.6.1 The memset
metzner algorithm, function
not the quick sort 7.11.6.2 The stderror
algorithm. function
7.10.6.1 The abs function 7.11.6.3 The strlen function
7.10.6.2 The div function 7.12 Date and time <time.h>
7.10.6.3 The labs function 7.13 Future library
directions
7.10.7.1 The mblen function
7.10.7.2 The mbtowc
function