4.1.2 Implementation-defined behavior of C99

(1)

How a diagnostic is identified (3.10, 5.1.1.3).

 

Refer to "10. MESSAGE".

 

(2)

Whether each non-empty sequence of white-space characters other than new-line is retained or replaced by one space character in translation phase 3 (5.1.1.2).

 

Retained as they are.

 

(3)

The mapping between physical source file multi-byte characters and the source character set in translation phase 1 (5.1.1.2).

 

Multibyte characters are mapped to the corresponding source character set according to the compile option.

 

(4)

The name and type of the function called at program startup in a freestanding environment (5.1.2.1).

 

Not defined. Depends on the startup implementation.

 

(5)

The effect of program termination in a freestanding environment (5.1.2.1).

 

Depends on startup in a normal termination. The abort function is used to terminate the program abnormally.

 

(6)

An alternative manner in which the main function may be defined (5.1.2.2.1).

 

Not defined because of a freestanding environment.

 

(7)

The values given to the strings pointed to by the argv argument to main (5.1.2.2.1).

 

Not defined because of a freestanding environment.

 

(8)

What constitutes an interactive device (5.1.2.3).

 

Not defined for the configuration of an interactive device.

 

(9)

The set of signals, their semantics, and their default handling (7.14).

 

The signal handling functions are not supported.

 

(10)

Signal values other than SIGFPE, SIGILL, and SIGSEGV that correspond to a computational exception (7.14.1.1).

 

The signal handling functions are not supported.

 

(11)

Signals for which the equivalent of signal(sig, SIG_IGN); is executed at program startup (7.14.1.1).

 

The signal handling functions are not supported.

 

(12)

The set of environment names and the method for altering the environment list used by the getenv function (7.20.4.5).

 

The getenv function is not supported.

 

(13)

The manner of execution of the string by the system function (7.20.4.6).

 

The system function is not supported.

 

(14)

Which additional multibyte characters may appear in identifiers and their correspondence to universal character names (6.4.2).

 

Multibyte characters cannot be used as identifiers.

 

(15)

The number of significant initial characters in an identifier (5.2.4.1, 6.4.2).

 

The entire identifier is handled as meaningful. The length of an identifier is unlimited.

 

(16)

The number of bits in a byte (3.6).

 

8 bits.

 

(17)

The values of the members of the execution character set (5.2.1).

 

The element values of the execution character set are ASCII code, EUC, SJIS, UTF-8, big5 and gb2312 values.

 

(18)

The unique value of the member of the execution character set produced for each of the standard alphabetic escape sequences (5.2.2).

 

Escape Sequence

Value (ASCII)

\a

0x07

\b

0x08

\f

0x0C

\n

0x0A

\r

0x0D

\t

0x09

\v

0x0B

 

(19)

The value of a char object into which has been stored any character other than a member of the basic execution character set (6.2.5).

 

Value that is type-converted to char type.

 

(20)

Which of signed char or unsigned char has the same range, representation, and behavior as "plain" char (6.2.5, 6.3.1.1).

 

The char type has the same range of values, the same representation format and the same behavior as the signed char type.

 

(21)

The mapping of members of the source character set (in character constants and string literals) to members of the execution character set (6.4.4.4, 5.1.1.2).

 

Associated with the element having the same value.

 

(22)

The value of an integer character constant containing more than one character or containing a character or escape sequence that does not map to a single-byte execution character (6.4.4.4).

 

A integer character constant consisting of up to four characters has a four-byte value with the lower byte being the last character and the upper byte being the first character. A character constant having five or more characters results in an error. A character which is not represented by basic execution environment character set is regarded as a integer character constant having that value. In an invalid escape sequence, the backslash is ignored and the next character is regarded as a integer character constant.

 

(23)

The value of a wide character constant containing more than one multibyte character, or containing a multibyte character or escape sequence not represented in the extended execution character set (6.4.4.4).

 

Left-most character value as a multibyte character.

 

(24)

The current locale used to convert a wide character constant consisting of a single multi-byte character that maps to a member of the extended execution character set into a corresponding wide character code (6.4.4.4).

 

Locale is not supported.

 

(25)

The current locale used to convert a wide string literal into corresponding wide character codes (6.4.5).

 

Locale is not supported.

 

(26)

The value of a string literal containing a multi-byte character or escape sequence not represented in the execution character set (6.4.5).

 

Corresponding byte value for escape sequence or corresponding each byte value for a multibyte character.

 

(27)

Any extended integer types that exist in the implementation (6.2.5).

 

No extended integer types are provided.

 

(28)

Whether signed integer types are represented using sign and magnitude, two's complement, or one's complement, and whether the extraordinary value is a trap representation or an ordinary value (6.2.6.2).

 

The signed integer type is represented in two's complement, and there are no trap representations.

 

(29)

The rank of any extended integer type relative to another extended integer type with the same precision (6.3.1.1).

 

No extended integer types are provided.

 

(30)

The result of, or the signal raised by, converting an integer to a signed integer type when the value cannot be represented in an object of that type (6.3.1.3).

 

Bit string masked by the width of the conversion target type (with the upper bits truncated).

 

(31)

The results of some bit-wise operations on signed integers (6.5).

 

Arithmetic shift is performed for a shift operator. For other operators, a signed integer is calculated as an unsigned value (as a bit image).

 

(32)

The accuracy of the floating-point operations and of the library functions in <math.h> and <complex.h> that return floating-point results (5.2.4.2.2).

 

Unknown.

 

(33)

The rounding behaviors characterized by non-standard values of FLT_ROUNDS (5.2.4.2.2).

 

No nonstandard value is defined for FLT_ROUNDS.

 

(34)

The evaluation methods characterized by non-standard negative values of FLT_EVAL_METHOD (5.2.4.2.2).

 

No nonstandard value is defined for FLT_EVAL_METHOD.

 

(35)

The direction of rounding when an integer is converted to a floating-point number that cannot exactly represent the original value (6.3.1.4).

 

As per the option (-Xround) specification and microcomputer settings.

 

(36)

The direction of rounding when a floating-point number is converted to a narrower floating-point number (6.3.1.5).

 

As per the option (-Xround) specification and microcomputer settings.

 

(37)

How the nearest representable value or the larger or smaller representable value immediately adjacent to the nearest representable value is chosen for certain floating constants (6.4.4.2).

 

As per the option (-Xround) specification.

 

(38)

Whether and how floating expressions are contracted when not disallowed by the FP_CONTRACT pragma (6.5).

 

Contraction of expressions depends on each option specification.

The FP_CONTRACT pragma does not work.

#pragma STDC FP_CONTRACT is ignored even if it is specified.

 

(39)

The default state for the FENV_ACCESS pragma (7.6.1).

 

The default state of the FENV_ACCESS pragma is ON.

#pragma STDC FENV_ACCESS is ignored even if it is specified.

 

(40)

Additional floating-point exceptions, rounding modes, environments, and classifications, and their macro names (7.6, 7.12).

 

As per the math.h library provided by the compiler. There are no additional definitions.

 

(41)

The default state for the FP_CONTRACT pragma (7.12.2).

 

The default state of the FP_CONTRACT pragma is ON.

 

(42)

Whether the "inexact" floating-point exception can be raised when the rounded result actually does equal the mathematical result in an IEC 60559 conformant implementation (F.9).

 

Floating-point exceptions are not supported.

No "inexact" floating-point exception is generated.

 

(43)

Whether the underflow (and inexact) floating-point exception can be raised when a result is tiny but not inexact in an IEC 60559 conformant implementation (F.9).

 

Floating-point exceptions are not supported. No "underflow" or "inexact" floating-point exception is generated.

 

(44)

The result of converting a pointer to an integer or vice versa (6.3.2.3).

 

Integer-to-pointer conversion result

If the size of an integer type is larger than that of a pointer type, the lower-byte value of the integer type is used. If the size of the integer type is equal to that of the pointer type, the bit pattern of the integer type is retained as is. If the size of the integer type is smaller than that of the pointer type, the resultant value of an extension to an int type is retained as is.

 

Pointer-to-integer conversion result

If the size of a pointer type is larger than that of an integer type, the lower-byte value of the pointer type is used. If the size of the pointer type is equal to that of the integer type, the bit pattern of the pointer type is retained as is. If the size of a pointer type is smaller than that of an integer type, the zero-extended value of the pointer type is used.

 

(45)

The size of the result of subtracting two pointers to elements of the same array (6.5.6).

 

The resultant type is the signed int type.

 

(46)

The extent to which suggestions made by using the register storage-class specifier are effective (6.7.1).

 

User requests for register variables are not honored.

 

(47)

The extent to which suggestions made by using the inline function specifier are effective (6.7.4).

 

Inlining is always tried. However, inlining may not be performed depending on the condition.

 

(48)

Whether a "plain" int bit-field is treated as signed int bit-field or as an unsigned int bit-field (6.7.2, 6.7.2.1).

 

Treated as a signed int type. The most significant bit of the bit field is treated as a sign bit.

 

(49)

Allowable bit-field types other than _Bool, signed int, and unsigned int (6.7.2.1).

 

All integer types are allowed.

 

(50)

Whether a bit-field can straddle a storage-unit boundary (6.7.2.1).

 

When structure type packing is not specified, a bit-field cannot straddle a strage-unit boundary, but it is allocated to the next area.

When structure type packing is specified, a bit-field may straddle a strage-unit boundary.

 

(51)

The order of allocation of bit-fields within a unit (6.7.2.1).

 

Allocated from the lower order. Selectable by option -Xbit_order or #pragma bit_order.

 

(52)

The alignment of non-bit-field members of structures (6.7.2.1).

 

Refer to "4.1.3 Internal representation and value area of data".

 

(53)

The integer type compatible with each enumerated type (6.7.2.2).

 

signed int type. However, the minimum type that an enumerated type fits in if option -Xenum_type=auto is specified.

 

(54)

What constitutes an access to an object that has volatile-qualified type (6.7.3).

 

Although the access width, and order and number of accesses are as described in the C source, this does not apply to those accesses to a type for which the microcomputer does not have a corresponding instruction.

 

(55)

How sequences in both forms of header names are mapped to headers or external source file names (6.4.7).

 

A character string described in the #include is interpreted as the character code specified as the source character set and is associated with a header name or an external source file name.

 

(56)

Whether the value of a character constant in a constant expression that controls conditional inclusion matches the value of the same character constant in the execution character set (6.10.1).

 

A value for the character constant specified in conditional inclusion is equal to the character constant value that appears in other expressions.

 

(57)

Whether the value of a single-character character constant in a constant expression that controls conditional inclusion may have a negative value (6.10.1).

 

A character constant can be a negative value.

 

(58)

The places that are searched for an included < > delimited header, and how the places are specified other header is identified (6.10.2).

 

Folders are searched in this order and a file having the same name in the folder is identified as the header.

1. Folder specified by the path (if it is full-path)

2. Folder specified by option -I

3. Standard include file folder (..\inc folder with a relative path from the bin folder where the compiler is placed)

 

(59)

How the named source file is searched for in an included " " delimited header (6.10.2).

 

Searched in this order:

1. Folder specified by the path (if it is full-path)

2. Folder having the source file

3. Folder specified by option -I

4. Standard include file folder (..\inc folder with a relative path from the bin folder where the compiler is placed)

 

(60)

The method by which preprocessing tokens (possibly resulting from macro expansion) in a #include directive are combined into a header name (6.10.2).

 

Treated as a preprocessing token of a single header or file name only in a macro that replaces preprocessing tokens with a single <character string> or "character string" format.

 

(61)

The nesting limit for #include proccessing (6.10.2).

 

There are no limits.

 

(62)

Whether the # operator inserts a \ character before the \ character that begins a universal character name in a character constant or string literal (6.10.3.2).

 

Character \ is not inserted in front of the first \ character.

 

(63)

The behavior on each recognized non-STDC #pragma directive (6.10.6).

 

Refer to "4.2.6 Using extended language specifications" in the User's Manual.

 

(64)

The definitions for __DATE__ and __TIME__ when respectively, the date and time of translation are not available (6.10.8).

 

A date and time are always obtained.

 

(65)

Any library facilities available to a freestanding program, other than the minimal set required by clause 4 (5.1.2.1).

 

Refer to "7. LIBRARY FUNCTIONAL SPECIFICATIONS".

 

(66)

The format of the diagnostic printed by the assert macro (7.2.1.1).

 

As follows:

Assertion failed: Expression, function function_name, file file_name, line line_number

 

(67)

The representation of the floating-point status flags stored by the fegetexceptflag function (7.6.2.2).

 

The fegetexceptflag function is not supported.

 

(68)

Whether the feraiseexcept function raises the "inexact" floating-point exception in addition to the "overflow" or "underflow" floating-point exception (7.6.2.3).

 

The feraiseexcept function is not supported.

 

(69)

Strings other than "C" and "" that may be passed as the second argument to the setlocale function (7.11.1.1).

 

The setlocale function is not supported.

 

(70)

The types defined for float_t and double_t when the value of the FLT_EVAL_METHOD macro is less than zero or greater than two (7.12).

 

float_t is defined as the float type and double_t as the double type.

 

(71)

Domain errors for the mathematics functions, other that those required by this International Standard (7.12.1).

 

The atan2, cos, sin, tan, frexp, pow, lround, llround, fmod functions might result in a domain error.

 

(72)

The values returned by the mathematics functions on domain errors (7.12.1).

 

For details, refer to "7.4.10 Mathematical functions".

 

(73)

The values returned by the mathematics functions on underflow range errors, whether errno is set to the value of the macro ERANGE when the integer expression math_errhandling & MATH_ERRNO is nonzero, and whether the “underflow” floating-point exception is raised when the integer expression math_errhandling & MATH_ERREXCEPT is nonzero. (7.12.1).

 

The return value is 0. However, the exp or ldexp functions returns 0 or a denormalized number. ERANGE is set in errno in case of an underflow. No "underflow" floating-point exception is generated.

 

(74)

Whether a domain error occurs or zero is returned when an fmod function has a second argument of zero (7.12.10.1).

 

A domain error is generated. For details, see the description about the fmod functions.

 

(75)

The base-2 logarithm of the modulus used by the remquo functions in reducing the quotient (7.12.10.3).

 

The remquo functions is not supported.

 

(76)

Whether the equivalent of signal(sig, SIG_DFL); is executed prior to the call of a signal handler, and, if not, the blocking of signals that is performed (7.14.1.1).

 

The signal handling functions are not supported.

 

(77)

The null pointer constant to which the macro NULL expands (7.17).

 

(void *)0.

 

(78)

Whether the last line of a text stream requires a terminating new-line character (7.19.2).

 

The last line does not need to end in a newline character.

 

(79)

Whether space characters that are written out to a text stream immediately before a new-line character appear when read in (7.19.2).

 

Space characters appear when data is read.

 

(80)

The number of null characters that may be appended to data written to a binary stream (7.19.2).

 

0.

 

(81)

Whether the file position indicator of an append-mode stream is initially positioned at the beginning or end of the file (7.19.3).

 

The file handling functions are not supported.

 

(82)

Whether a write on a text stream causes the associated file to be truncated beyond that point (7.19.3).

 

The file handling functions are not supported.

 

(83)

The characteristics of file buffering (7.19.3).

 

The file handling functions are not supported.

 

(84)

Whether a zero-length file actually exists (7.19.3).

 

The file handling functions are not supported.

 

(85)

The rules for composing valid file names (7.19.3).

 

The file handling functions are not supported.

 

(86)

Whether the same file can be simultaneously open multiple times (7.19.3).

 

The file handling functions are not supported.

 

(87)

The nature and choice of encodings used for multibyte characters in files (7.19.3).

 

The file handling functions are not supported.

 

(88)

The effect of the remove function on an open file (7.19.4.1).

 

The file handling functions are not supported.

 

(89)

The effect if a file with the new name exists prior to a call to the rename function (7.19.4.2).

 

The file handling functions are not supported.

 

(90)

Whether an open temporary file is removed upon abnormal program termination (7.19.4.3).

 

The file handling functions are not supported.

 

(91)

Which changes of mode are permitted (if any), and under what circumstances (7.19.5.4).

 

The file handling functions are not supported.

 

(92)

The style used to print an infinity or NaN, and the meaning of any n-char or n-wchar sequence printed for a NaN (7.19.6.1, 7.24.2.1).

 

(+INF) is output for a positive infinity, (-INF) for a negative infinity, and (NaN) for a NaN.

n character strings or n wide character strings are not supported when a NaN is written.

 

(93)

The output for %p conversion in the fprintf or fwprintf function (7.19.6.1, 7.24.2.1).

 

Decimal notation.

The fwprintf function is not supported.

 

(94)

The interpretation of a - character that is neither the first nor the last character, nor the second where a ^ character is the first, in the scanlist for %[ conversion in the fscanf() or fwscanf() function (7.19.6.2, 7.24.2.1).

 

Refer to "sscanf" in "7.4.7 Standard I/O functions".

The fwscanf function is not supported.

 

(95)

The set of sequences matched by a %p conversion and the interpretation of the corresponding input item in the fscanf() or fwscanf() function (7.19.6.2, 7.24.2.2).

 

Decimal integer.

The fwscanf function is not supported.

 

(96)

The value to which the macro errno is set by the fgetpos, fsetpos, or ftell functions on failure (7.19.9.1, 7.19.9.3, 7.19.9.4).

 

The file handling functions are not supported.

 

(97)

The meaning of any n-char or n-wchar sequence in a string representing a NaN that is converted by the strtod(), strtof(), strtold(), wcstod(), wcstof(), or wcstold() function (7.20.1.3, 7.24.4.1.1).

 

Interpreted as a value other than a number of floating-point type in case of the strtod or strtodf function.

The strtof, strtold, wcstod, wcstof, and wcstold functions are not supported.

 

(98)

Whether or not the strtod, strtof, strtold, wcstod, wcstof, or wcstold function sets errno to ERANGE when underflow occurs (7.20.1.3, 7.24.4.1.1).

 

The strtod and strtodf functions set ERANGE in global variable errno.

The strtof, strtold, wcstod, wcstof, and wcstold functions are not supported.

 

(99)

Whether the calloc, malloc, and realloc functions return a null pointer or a pointer to an allocated object when the size requested is zero (7.20.3).

 

The calloc or malloc function returns the secured pointer, assuming the request size is 8. The realloc function returns NULL.

 

(100)

Whether open streams with unwritten buffered data are flushed, open streams are closed, or temporary files are removed when the abort or _Exit function is called (7.20.4.1, 7.20.4.4).

 

The file handling functions are not supported.

 

(101)

The termination status returned to the host environment by the abort, exit, or _Exit function (7.20.4.1, 7.20.4.3, 7.20.4.4).

 

Not defined because of a freestanding environment.

 

(102)

The value returned by the system function when its argument is not a null pointer (7.20.4.6).

 

The system function is not supported.

 

(103)

The local time zone and Daylight Saving Time (7.23.1).

 

time.h is not supported.

 

(104)

The range and precision of times representable in clock_t and time_t (7.23).

 

time.h is not supported.

 

(105)

The era for the clock function (7.23.2.1).

 

time.h is not supported.

 

(106)

The replacement string for the %Z specifier to the strftime, and wcsftime functions in the "C" locale (7.23.3.5, 7.24.5.1).

 

time.h is not supported.

 

(107)

Whether or when the trigonometric, hyperbolic, base-e exponential, base-e logarithmic, error, and log gamma functions raise the "inexact" floating-point exception in an IEC 60559 conformant implementation (F.9).

 

No "inexact" floating-point exception is generated.

 

(108)

Whether the functions in <math.h> honor the rounding direction mode in an IEC 60559 conformant implementation (F.9).

 

Depends on the linked library.

The fesetround function is not supported.

 

(109)

The values or expressions assigned to the macros specified in the headers <float.h>, <limits.h>, and <stdint.h> (5.2.4.2, 7.18.2, 7.18.3).

 

float.h

Name

Value

Meaning

FLT_ROUNDS

1 -Xround=nearest

0 -Xround=zero

Rounding mode for floating-point addition.

1: Rounded to nearest

0: Rounded to zero

FLT_RADIX

+2

Radix of exponent (b)

FLT_MANT_DIG

+24

Number of numerals (p) with FLT_RADIX of floating- point mantissa as base

DBL_MANT_DIG

+53

LDBL_MANT_DIG

+53

FLT_DIG

+6

Number of digits of a decimal number (q) that can round a decimal number of q digits to a floating-point number of p digits of the radix b and then restore the decimal number of q

DBL_DIG

+15

LDBL_DIG

+15

FLT_MIN_EXP

-125

Minimum negative integer (emin) that is a normalized floating-point number when FLT_RADIX is raised to the power of the value of FLT_RADIX minus 1.

DBL_MIN_EXP

-1021

LDBL_MIN_EXP

-1021

FLT_MIN_10_EXP

-37

Minimum negative integer log10bemin-1 that falls in the range of a normalized floating-point number when 10 is raised to the power of its value.

DBL_MIN_10_EXP

-307

LDBL_MIN_10_EXP

-307

FLT_MAX_EXP

+128

Maximum integer (emax) that is a finite floating-point number that can be expressed when FLT_RADIX is raised to the power of its value minus 1.

DBL_MAX_EXP

+1024

LDBL_MAX_EXP

+1024

FLT_MAX_10_EXP

+38

Maximum integer that falls in the range of a normalized floating-point number when 10 is raised to this power.

log10 ((1 - b-p) * bemax)

DBL_MAX_10_EXP

+308

LDBL_MAX_10_EXP

+308

FLT_MAX

3.40282347E + 38F

Maximum value of finite floating-point numbers that can be expressed

(1 - b-p) * bemax

DBL_MAX

1.7976931348623158E+308

LDBL_MAX

1.7976931348623158E+308

FLT_EPSILON

1.19209290E - 07F

Difference between 1.0 that can be expressed by specified floating-point number type and the lowest value which is greater than 1.

b1 - p

DBL_EPSILON

2.2204460492503131E-016

LDBL_EPSILON

2.2204460492503131E-016

FLT_MIN

1.17549435E - 38F

Minimum value of normalized positive floating-point number

bemin - 1

DBL_MIN

2.2250738585072014E-308

LDBL_MIN

2.2250738585072014E-308

 

half.h

Name

Value

Meaning

HALF_MANT_DIG

+11

Number of numerals (p) with FLT_RADIX of floating- point mantissa as base

HALF_DIG

+2

Number of digits of a decimal number (q) that can round a decimal number of q digits to a floating-point number of p digits of the radix b and then restore the decimal number of q

HALF_MIN_EXP

-13

Minimum negative integer (emin) that is a normalized floating-point number when FLT_RADIX is raised to the power of the value of FLT_RADIX minus 1.

HALF_MIN_10_EXP

-4

Minimum negative integer log10bemin-1 that falls in the range of a normalized floating-point number when 10 is raised to the power of its value.

HALF_MAX_EXP

+16

Maximum integer (emax) that is a finite floating-point number that can be expressed when FLT_RADIX is raised to the power of its value minus 1.

HALF_MAX_10_EXP

+4

Maximum integer that falls in the range of a normalized floating-point number when 10 is raised to this power.

log10 ((1 - b-p) * bemax)

HALF_MAX

65504.0F

Maximum value of finite floating-point numbers that can be expressed

(1 - b-p) * bemax

HALF_EPSILON

0.00097656F

Difference between 1.0 that can be expressed by specified floating-point number type and the lowest value which is greater than 1.

b1 - p

HALF_MIN

6.10352E-05F

Minimum value of normalized positive floating-point number

bemin - 1

 

limits.h

Name

Value

Meaning

CHAR_BIT

+8

The number of bits (= 1 byte) of the minimum object not in bit field

SCHAR_MIN

-128

Minimum value of signed char

SCHAR_MAX

+127

Maximum value of signed char

UCHAR_MAX

+255

Maximum value of unsigned char

CHAR_MIN

-128

Minimum value of char

CHAR_MAX

+127

Maximum value of char

SHRT_MIN

-32768

Minimum value of short int

SHRT_MAX

+32767

Maximum value of short int

USHRT_MAX

+65535

Maximum value of unsigned short int

INT_MIN

-2147483648

Minimum value of int

INT_MAX

+2147483647

Maximum value of int

UINT_MAX

+4294967295

Maximum value of unsigned int

LONG_MIN

-2147483648

Minimum value of long int

LONG_MAX

+2147483647

Maximum value of long int

ULONG_MAX

+4294967295

Maximum value of unsigned long int

LLONG_MIN

-9223372036854775807

Minimum value of long long int

LLONG_MAX

+9223372036854775807

Maximum value of long long int

ULLONG_MAX

+18446744073709551615

Maximum value of unsigned long long int

 

stdint.h

Name

Value

Meaning

INT8_MIN

-0x7f-1

Minimum value of int8_t

INT16_MIN

-0x7fff-1

Minimum value of int16_t

INT32_MIN

-0x7fffffff-1

Minimum value of int32_t

INT64_MIN

-0x7fffffffffffffffLL-1

Minimum value of int64_t

INT8_MAX

0x7f

Maximum value of int8_t

INT16_MAX

0x7fff

Maximum value of int16_t

INT32_MAX

0x7fffffff

Maximum value of int32_t

INT64_MAX

0x7fffffffffffffffLL

Maximum value of int64_t

UINT8_MAX

0xff

Maximum value of uint8_t

UINT16_MAX

0xffff

Maximum value of uint16_t

UINT32_MAX

0xffffffff

Maximum value of uint32_t

UINT64_MAX

0xffffffffffffffffULL

Maximum value of uint64_t

INT_LEAST8_MIN

-0x7f-1

Minimum value of int_least8_t

INT_LEAST16_MIN

-0x7fff-1

Minimum value of int_least16_t

INT_LEAST32_MIN

-0x7fffffff-1

Minimum value of int_least32_t

INT_LEAST64_MIN

-0x7fffffffffffffffLL-1

Minimum value of int_least64_t

INT_LEAST8_MAX

0x7f

Maximum value of int_least8_t

INT_LEAST16_MAX

0x7fff

Maximum value of int_least16_t

INT_LEAST32_MAX

0x7fffffff

Maximum value of int_least32_t

INT_LEAST64_MAX

0x7fffffffffffffffLL

Maximum value of int_least64_t

UINT_LEAST8_MAX

0xff

Maximum value of uint_least8_t

UINT_LEAST16_MAX

0xffff

Maximum value of uint_least16_t

UINT_LEAST32_MAX

0xffffffffU

Maximum value of uint_least32_t

UINT_LEAST64_MAX

0xffffffffffffffffULL

Maximum value of uint_least64_t

INT_FAST8_MIN

-0x7fffffff-1

Minimum value of int_fast8_t

INT_FAST16_MIN

-0x7fffffff-1

Minimum value of int_fast16_t

INT_FAST32_MIN

-0x7fffffff-1

Minimum value of int_fast32_t

INT_FAST64_MIN

-0x7fffffffffffffffLL-1

Minimum value of int_fast64_t

INT_FAST8_MAX

0x7fffffff

Maximum value of int_fast8_t

INT_FAST16_MAX

0x7fffffff

Maximum value of int_fast16_t

INT_FAST32_MAX

0x7fffffff

Maximum value of int_fast32_t

INT_FAST64_MAX

0x7fffffffffffffffLL

Maximum value of int_fast64_t

UINT_FAST8_MAX

0xffffffffU

Maximum value of uint_fast8_t

UINT_FAST16_MAX

0xffffffffU

Maximum value of uint_fast16_t

UINT_FAST32_MAX

0xffffffffU

Maximum value of uint_fast32_t

UINT_FAST64_MAX

0xffffffffffffffffULL

Maximum value of uint_fast64_t

INTPTR_MIN

-0x7fffffff-1

Minimum value of intptr_t

INTPTR_MAX

0x7fffffff

Maximum value of intptr_t

UINTPTR_MAX

0xffffffffU

Maximum value of uintptr_t

INTMAX_MIN

-0x7fffffffffffffffLL-1

Minimum value of intmax_t

INTMAX_MAX

0x7fffffffffffffffLL

Maximum value of intmax_t

UINTMAX_MAX

0xffffffffffffffffULL

Maximum value of uintmax_t

PTRDIFF_MIN

-0x7fffffff-1

Minimum value of ptrdiff_t

PTRDIFF_MAX

0x7fffffff

Maximum value of ptrdiff_t

SIZE_MAX

0xffffffffU

Maximum value of size_t

 

(110)

The number, order, and encoding of bytes in any object (when not explicitly specified in this International Standard) (6.2.6.1).

 

Refer to "4.1.3 Internal representation and value area of data".

 

(111)

The value of the result of the sizeof operator (6.5.3.4).

 

Refer to "4.1.3 Internal representation and value area of data".

 

 

Transration limits

The table below shows the translation limits of CC-RH.

The upper limit depends on the memory situation of the host environment for the item "No limit".

item

limit

Number of nesting levels of blocks

No limit

Number of nesting levels of conditional inclusion

No limit

Number of pointers, arrays, and function declarators (in any combinations) qualifying an arithmetic, structure, union, or incomplete type in a declaration

128

Number of nesting levels of parenthesized declarators within a full declarator

No limit

Number of nesting levels of parenthesized expressions within a full expression

No limit

Number of significant initial characters in an internal identifier or a macro name

No limit

Number of significant initial characters in an external identifier

No limit

Number of external identifiers in one translation unit

No limit

Number of identifiers with block scope declared in one block

No limit

Number of macro identifiers simultaneously defined in one preprocessing translation unit

No limit

Number of parameters in one function definition

No limit

Number of arguments in one function call

No limit

Number of parameters in one macro definition

No limit

Number of arguments in one macro invocation

No limit

Number of characters in a logical source line

No limit

Number of characters in a character string literal or wide string literal (after concatenation)

No limit

Number of bytes in an object (in a hosted environment only)

2147483647

Number of nesting levels for #included files

No limit

Number of case labels for a switch statement (excluding those for any nested switch statements)

2147483647

Number of members in a single structure or union

No limit

Number of enumeration constants in a single enumeration

No limit

Number of levels of nested structure or union definitions in a single struct-declaration-list

No limit