$treeview $search $mathjax $extrastylesheet
avr-libc  2.0.0
$projectbrief
$projectbrief
$searchbox

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

stdint.h

Go to the documentation of this file.
00001 /* Copyright (c) 2002,2004,2005 Marek Michalkiewicz
00002    Copyright (c) 2005, Carlos Lamas
00003    Copyright (c) 2005,2007 Joerg Wunsch
00004    Copyright (c) 2013 Embecosm
00005    All rights reserved.
00006 
00007    Redistribution and use in source and binary forms, with or without
00008    modification, are permitted provided that the following conditions are met:
00009 
00010    * Redistributions of source code must retain the above copyright
00011      notice, this list of conditions and the following disclaimer.
00012 
00013    * Redistributions in binary form must reproduce the above copyright
00014      notice, this list of conditions and the following disclaimer in
00015      the documentation and/or other materials provided with the
00016      distribution.
00017 
00018    * Neither the name of the copyright holders nor the names of
00019      contributors may be used to endorse or promote products derived
00020      from this software without specific prior written permission.
00021 
00022   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00023   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00025   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00026   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00027   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00028   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00029   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00030   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00031   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032   POSSIBILITY OF SUCH DAMAGE. */
00033 
00034 /* $Id$ */
00035 
00036 /*
00037  * ISO/IEC 9899:1999  7.18 Integer types <stdint.h>
00038  */
00039 
00040 #ifndef __STDINT_H_
00041 #define __STDINT_H_
00042 
00043 /** \file */
00044 /** \defgroup avr_stdint <stdint.h>: Standard Integer Types
00045     \code #include <stdint.h> \endcode
00046 
00047     Use [u]intN_t if you need exactly N bits.
00048 
00049     Since these typedefs are mandated by the C99 standard, they are preferred
00050     over rolling your own typedefs.  */
00051 
00052 #ifndef __DOXYGEN__
00053 /*
00054  * __USING_MINT8 is defined to 1 if the -mint8 option is in effect.
00055  */
00056 #if __INT_MAX__ == 127
00057 # define __USING_MINT8 1
00058 #else
00059 # define __USING_MINT8 0
00060 #endif
00061 
00062 #endif  /* !__DOXYGEN__ */
00063 
00064 /* Integer types */
00065 
00066 #if defined(__DOXYGEN__)
00067 
00068 /* doxygen gets confused by the __attribute__ stuff */
00069 
00070 /** \name Exact-width integer types
00071     Integer types having exactly the specified width */
00072 
00073 /*@{*/
00074 
00075 /** \ingroup avr_stdint
00076     8-bit signed type. */
00077 
00078 typedef signed char int8_t;
00079 
00080 /** \ingroup avr_stdint
00081     8-bit unsigned type. */
00082 
00083 typedef unsigned char uint8_t;
00084 
00085 /** \ingroup avr_stdint
00086     16-bit signed type. */
00087 
00088 typedef signed int int16_t;
00089 
00090 /** \ingroup avr_stdint
00091     16-bit unsigned type. */
00092 
00093 typedef unsigned int uint16_t;
00094 
00095 /** \ingroup avr_stdint
00096     32-bit signed type. */
00097 
00098 typedef signed long int int32_t;
00099 
00100 /** \ingroup avr_stdint
00101     32-bit unsigned type. */
00102 
00103 typedef unsigned long int uint32_t;
00104 
00105 /** \ingroup avr_stdint
00106     64-bit signed type.
00107     \note This type is not available when the compiler
00108     option -mint8 is in effect. */
00109 
00110 typedef signed long long int int64_t;
00111 
00112 /** \ingroup avr_stdint
00113     64-bit unsigned type.
00114     \note This type is not available when the compiler
00115     option -mint8 is in effect. */
00116 
00117 typedef unsigned long long int uint64_t;
00118 
00119 /*@}*/
00120 
00121 #else /* !defined(__DOXYGEN__) */
00122 
00123 /* actual implementation goes here */
00124 
00125 typedef signed int int8_t __attribute__((__mode__(__QI__)));
00126 typedef unsigned int uint8_t __attribute__((__mode__(__QI__)));
00127 typedef signed int int16_t __attribute__ ((__mode__ (__HI__)));
00128 typedef unsigned int uint16_t __attribute__ ((__mode__ (__HI__)));
00129 typedef signed int int32_t __attribute__ ((__mode__ (__SI__)));
00130 typedef unsigned int uint32_t __attribute__ ((__mode__ (__SI__)));
00131 #if !__USING_MINT8
00132 typedef signed int int64_t __attribute__((__mode__(__DI__)));
00133 typedef unsigned int uint64_t __attribute__((__mode__(__DI__)));
00134 #endif
00135 
00136 #endif /* defined(__DOXYGEN__) */
00137 
00138 /** \name Integer types capable of holding object pointers
00139     These allow you to declare variables of the same size as a pointer. */
00140 
00141 /*@{*/
00142 
00143 /** \ingroup avr_stdint
00144     Signed pointer compatible type. */
00145 
00146 typedef int16_t intptr_t;
00147 
00148 /** \ingroup avr_stdint
00149     Unsigned pointer compatible type. */
00150 
00151 typedef uint16_t uintptr_t;
00152 
00153 /*@}*/
00154 
00155 /** \name Minimum-width integer types
00156    Integer types having at least the specified width */
00157 
00158 /*@{*/
00159 
00160 /** \ingroup avr_stdint
00161     signed int with at least 8 bits. */
00162 
00163 typedef int8_t   int_least8_t;
00164 
00165 /** \ingroup avr_stdint
00166     unsigned int with at least 8 bits. */
00167 
00168 typedef uint8_t  uint_least8_t;
00169 
00170 /** \ingroup avr_stdint
00171     signed int with at least 16 bits. */
00172 
00173 typedef int16_t  int_least16_t;
00174 
00175 /** \ingroup avr_stdint
00176     unsigned int with at least 16 bits. */
00177 
00178 typedef uint16_t uint_least16_t;
00179 
00180 /** \ingroup avr_stdint
00181     signed int with at least 32 bits. */
00182 
00183 typedef int32_t  int_least32_t;
00184 
00185 /** \ingroup avr_stdint
00186     unsigned int with at least 32 bits. */
00187 
00188 typedef uint32_t uint_least32_t;
00189 
00190 #if !__USING_MINT8 || defined(__DOXYGEN__)
00191 /** \ingroup avr_stdint
00192     signed int with at least 64 bits.
00193     \note This type is not available when the compiler
00194     option -mint8 is in effect. */
00195 
00196 typedef int64_t  int_least64_t;
00197 
00198 /** \ingroup avr_stdint
00199     unsigned int with at least 64 bits.
00200     \note This type is not available when the compiler
00201     option -mint8 is in effect. */
00202 
00203 typedef uint64_t uint_least64_t;
00204 #endif
00205 
00206 /*@}*/
00207 
00208 
00209 /** \name Fastest minimum-width integer types
00210    Integer types being usually fastest having at least the specified width */
00211 
00212 /*@{*/
00213 
00214 /** \ingroup avr_stdint
00215     fastest signed int with at least 8 bits. */
00216 
00217 typedef int8_t int_fast8_t;
00218 
00219 /** \ingroup avr_stdint
00220     fastest unsigned int with at least 8 bits. */
00221 
00222 typedef uint8_t uint_fast8_t;
00223 
00224 /** \ingroup avr_stdint
00225     fastest signed int with at least 16 bits. */
00226 
00227 typedef int16_t int_fast16_t;
00228 
00229 /** \ingroup avr_stdint
00230     fastest unsigned int with at least 16 bits. */
00231 
00232 typedef uint16_t uint_fast16_t;
00233 
00234 /** \ingroup avr_stdint
00235     fastest signed int with at least 32 bits. */
00236 
00237 typedef int32_t int_fast32_t;
00238 
00239 /** \ingroup avr_stdint
00240     fastest unsigned int with at least 32 bits. */
00241 
00242 typedef uint32_t uint_fast32_t;
00243 
00244 #if !__USING_MINT8 || defined(__DOXYGEN__)
00245 /** \ingroup avr_stdint
00246     fastest signed int with at least 64 bits.
00247     \note This type is not available when the compiler
00248     option -mint8 is in effect. */
00249 
00250 typedef int64_t int_fast64_t;
00251 
00252 /** \ingroup avr_stdint
00253     fastest unsigned int with at least 64 bits.
00254     \note This type is not available when the compiler
00255     option -mint8 is in effect. */
00256 
00257 typedef uint64_t uint_fast64_t;
00258 #endif
00259 
00260 /*@}*/
00261 
00262 
00263 /** \name Greatest-width integer types
00264    Types designating integer data capable of representing any value of
00265    any integer type in the corresponding signed or unsigned category */
00266 
00267 /*@{*/
00268 
00269 #if __USING_MINT8
00270 typedef int32_t intmax_t;
00271 
00272 typedef uint32_t uintmax_t;
00273 #else  /* !__USING_MINT8 */
00274 /** \ingroup avr_stdint
00275     largest signed int available. */
00276 
00277 typedef int64_t intmax_t;
00278 
00279 /** \ingroup avr_stdint
00280     largest unsigned int available. */
00281 
00282 typedef uint64_t uintmax_t;
00283 #endif /* __USING_MINT8 */
00284 
00285 /*@}*/
00286 
00287 #ifndef __DOXYGEN__
00288 /* Helping macro */
00289 #ifndef __CONCAT
00290 #define __CONCATenate(left, right) left ## right
00291 #define __CONCAT(left, right) __CONCATenate(left, right)
00292 #endif
00293 
00294 #endif  /* !__DOXYGEN__ */
00295 
00296 #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
00297 
00298 /** \name Limits of specified-width integer types
00299    C++ implementations should define these macros only when
00300    __STDC_LIMIT_MACROS is defined before <stdint.h> is included */
00301 
00302 /*@{*/
00303 
00304 /** \ingroup avr_stdint
00305     largest positive value an int8_t can hold. */
00306 
00307 #define INT8_MAX 0x7f
00308 
00309 /** \ingroup avr_stdint
00310     smallest negative value an int8_t can hold. */
00311 
00312 #define INT8_MIN (-INT8_MAX - 1)
00313 
00314 #if __USING_MINT8
00315 
00316 #define UINT8_MAX (__CONCAT(INT8_MAX, U) * 2U + 1U)
00317 
00318 #define INT16_MAX 0x7fffL
00319 #define INT16_MIN (-INT16_MAX - 1L)
00320 #define UINT16_MAX (__CONCAT(INT16_MAX, U) * 2UL + 1UL)
00321 
00322 #define INT32_MAX 0x7fffffffLL
00323 #define INT32_MIN (-INT32_MAX - 1LL)
00324 #define UINT32_MAX (__CONCAT(INT32_MAX, U) * 2ULL + 1ULL)
00325 
00326 #else /* !__USING_MINT8 */
00327 
00328 /** \ingroup avr_stdint
00329     largest value an uint8_t can hold. */
00330 
00331 #define UINT8_MAX (INT8_MAX * 2 + 1)
00332 
00333 /** \ingroup avr_stdint
00334     largest positive value an int16_t can hold. */
00335 
00336 #define INT16_MAX 0x7fff
00337 
00338 /** \ingroup avr_stdint
00339     smallest negative value an int16_t can hold. */
00340 
00341 #define INT16_MIN (-INT16_MAX - 1)
00342 
00343 /** \ingroup avr_stdint
00344     largest value an uint16_t can hold. */
00345 
00346 #define UINT16_MAX (__CONCAT(INT16_MAX, U) * 2U + 1U)
00347 
00348 /** \ingroup avr_stdint
00349     largest positive value an int32_t can hold. */
00350 
00351 #define INT32_MAX 0x7fffffffL
00352 
00353 /** \ingroup avr_stdint
00354     smallest negative value an int32_t can hold. */
00355 
00356 #define INT32_MIN (-INT32_MAX - 1L)
00357 
00358 /** \ingroup avr_stdint
00359     largest value an uint32_t can hold. */
00360 
00361 #define UINT32_MAX (__CONCAT(INT32_MAX, U) * 2UL + 1UL)
00362 
00363 #endif /* __USING_MINT8 */
00364 
00365 /** \ingroup avr_stdint
00366     largest positive value an int64_t can hold. */
00367 
00368 #define INT64_MAX 0x7fffffffffffffffLL
00369 
00370 /** \ingroup avr_stdint
00371     smallest negative value an int64_t can hold. */
00372 
00373 #define INT64_MIN (-INT64_MAX - 1LL)
00374 
00375 /** \ingroup avr_stdint
00376     largest value an uint64_t can hold. */
00377 
00378 #define UINT64_MAX (__CONCAT(INT64_MAX, U) * 2ULL + 1ULL)
00379 
00380 /*@}*/
00381 
00382 /** \name Limits of minimum-width integer types */
00383 /*@{*/
00384 
00385 /** \ingroup avr_stdint
00386     largest positive value an int_least8_t can hold. */
00387 
00388 #define INT_LEAST8_MAX INT8_MAX
00389 
00390 /** \ingroup avr_stdint
00391     smallest negative value an int_least8_t can hold. */
00392 
00393 #define INT_LEAST8_MIN INT8_MIN
00394 
00395 /** \ingroup avr_stdint
00396     largest value an uint_least8_t can hold. */
00397 
00398 #define UINT_LEAST8_MAX UINT8_MAX
00399 
00400 /** \ingroup avr_stdint
00401     largest positive value an int_least16_t can hold. */
00402 
00403 #define INT_LEAST16_MAX INT16_MAX
00404 
00405 /** \ingroup avr_stdint
00406     smallest negative value an int_least16_t can hold. */
00407 
00408 #define INT_LEAST16_MIN INT16_MIN
00409 
00410 /** \ingroup avr_stdint
00411     largest value an uint_least16_t can hold. */
00412 
00413 #define UINT_LEAST16_MAX UINT16_MAX
00414 
00415 /** \ingroup avr_stdint
00416     largest positive value an int_least32_t can hold. */
00417 
00418 #define INT_LEAST32_MAX INT32_MAX
00419 
00420 /** \ingroup avr_stdint
00421     smallest negative value an int_least32_t can hold. */
00422 
00423 #define INT_LEAST32_MIN INT32_MIN
00424 
00425 /** \ingroup avr_stdint
00426     largest value an uint_least32_t can hold. */
00427 
00428 #define UINT_LEAST32_MAX UINT32_MAX
00429 
00430 /** \ingroup avr_stdint
00431     largest positive value an int_least64_t can hold. */
00432 
00433 #define INT_LEAST64_MAX INT64_MAX
00434 
00435 /** \ingroup avr_stdint
00436     smallest negative value an int_least64_t can hold. */
00437 
00438 #define INT_LEAST64_MIN INT64_MIN
00439 
00440 /** \ingroup avr_stdint
00441     largest value an uint_least64_t can hold. */
00442 
00443 #define UINT_LEAST64_MAX UINT64_MAX
00444 
00445 /*@}*/
00446 
00447 /** \name Limits of fastest minimum-width integer types */
00448 
00449 /*@{*/
00450 
00451 /** \ingroup avr_stdint
00452     largest positive value an int_fast8_t can hold. */
00453 
00454 #define INT_FAST8_MAX INT8_MAX
00455 
00456 /** \ingroup avr_stdint
00457     smallest negative value an int_fast8_t can hold. */
00458 
00459 #define INT_FAST8_MIN INT8_MIN
00460 
00461 /** \ingroup avr_stdint
00462     largest value an uint_fast8_t can hold. */
00463 
00464 #define UINT_FAST8_MAX UINT8_MAX
00465 
00466 /** \ingroup avr_stdint
00467     largest positive value an int_fast16_t can hold. */
00468 
00469 #define INT_FAST16_MAX INT16_MAX
00470 
00471 /** \ingroup avr_stdint
00472     smallest negative value an int_fast16_t can hold. */
00473 
00474 #define INT_FAST16_MIN INT16_MIN
00475 
00476 /** \ingroup avr_stdint
00477     largest value an uint_fast16_t can hold. */
00478 
00479 #define UINT_FAST16_MAX UINT16_MAX
00480 
00481 /** \ingroup avr_stdint
00482     largest positive value an int_fast32_t can hold. */
00483 
00484 #define INT_FAST32_MAX INT32_MAX
00485 
00486 /** \ingroup avr_stdint
00487     smallest negative value an int_fast32_t can hold. */
00488 
00489 #define INT_FAST32_MIN INT32_MIN
00490 
00491 /** \ingroup avr_stdint
00492     largest value an uint_fast32_t can hold. */
00493 
00494 #define UINT_FAST32_MAX UINT32_MAX
00495 
00496 /** \ingroup avr_stdint
00497     largest positive value an int_fast64_t can hold. */
00498 
00499 #define INT_FAST64_MAX INT64_MAX
00500 
00501 /** \ingroup avr_stdint
00502     smallest negative value an int_fast64_t can hold. */
00503 
00504 #define INT_FAST64_MIN INT64_MIN
00505 
00506 /** \ingroup avr_stdint
00507     largest value an uint_fast64_t can hold. */
00508 
00509 #define UINT_FAST64_MAX UINT64_MAX
00510 
00511 /*@}*/
00512 
00513 /** \name Limits of integer types capable of holding object pointers */
00514 
00515 /*@{*/
00516 
00517 /** \ingroup avr_stdint
00518     largest positive value an intptr_t can hold. */
00519 
00520 #define INTPTR_MAX INT16_MAX
00521 
00522 /** \ingroup avr_stdint
00523     smallest negative value an intptr_t can hold. */
00524 
00525 #define INTPTR_MIN INT16_MIN
00526 
00527 /** \ingroup avr_stdint
00528     largest value an uintptr_t can hold. */
00529 
00530 #define UINTPTR_MAX UINT16_MAX
00531 
00532 /*@}*/
00533 
00534 /** \name Limits of greatest-width integer types */
00535 
00536 /*@{*/
00537 
00538 /** \ingroup avr_stdint
00539     largest positive value an intmax_t can hold. */
00540 
00541 #define INTMAX_MAX INT64_MAX
00542 
00543 /** \ingroup avr_stdint
00544     smallest negative value an intmax_t can hold. */
00545 
00546 #define INTMAX_MIN INT64_MIN
00547 
00548 /** \ingroup avr_stdint
00549     largest value an uintmax_t can hold. */
00550 
00551 #define UINTMAX_MAX UINT64_MAX
00552 
00553 /*@}*/
00554 
00555 /** \name Limits of other integer types
00556     C++ implementations should define these macros only when
00557     __STDC_LIMIT_MACROS is defined before <stdint.h> is included */
00558 
00559 /*@{*/
00560 
00561 /** \ingroup avr_stdint
00562     largest positive value a ptrdiff_t can hold. */
00563 
00564 #define PTRDIFF_MAX INT16_MAX
00565 
00566 /** \ingroup avr_stdint
00567     smallest negative value a ptrdiff_t can hold. */
00568 
00569 #define PTRDIFF_MIN INT16_MIN
00570 
00571 
00572 /* Limits of sig_atomic_t */
00573 /* signal.h is currently not implemented (not avr/signal.h) */
00574 
00575 /** \ingroup avr_stdint
00576     largest positive value a sig_atomic_t can hold. */
00577 
00578 #define SIG_ATOMIC_MAX INT8_MAX
00579 
00580 /** \ingroup avr_stdint
00581     smallest negative value a sig_atomic_t can hold. */
00582 
00583 #define SIG_ATOMIC_MIN INT8_MIN
00584 
00585 
00586 /** \ingroup avr_stdint
00587     largest value a size_t can hold. */
00588 
00589 #define SIZE_MAX UINT16_MAX
00590 
00591 
00592 /* Limits of wchar_t */
00593 /* wchar.h is currently not implemented */
00594 /* #define WCHAR_MAX */
00595 /* #define WCHAR_MIN */
00596 
00597 
00598 /* Limits of wint_t */
00599 /* wchar.h is currently not implemented */
00600 #ifndef WCHAR_MAX
00601 #define WCHAR_MAX __WCHAR_MAX__
00602 #define WCHAR_MIN __WCHAR_MIN__
00603 #endif
00604 #ifndef WINT_MAX
00605 #define WINT_MAX __WINT_MAX__
00606 #define WINT_MIN __WINT_MIN__
00607 #endif
00608 
00609 
00610 #endif /* !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) */
00611 
00612 #if (!defined __cplusplus || __cplusplus >= 201103L \
00613      || defined __STDC_CONSTANT_MACROS)
00614 
00615 /** \name Macros for integer constants
00616     C++ implementations should define these macros only when
00617     __STDC_CONSTANT_MACROS is defined before <stdint.h> is included.
00618 
00619     These definitions are valid for integer constants without suffix and
00620     for macros defined as integer constant without suffix */
00621 
00622 /* The GNU C preprocessor defines special macros in the implementation
00623    namespace to allow a definition that works in #if expressions.  */
00624 #ifdef __INT8_C
00625 #define INT8_C(c) __INT8_C(c)
00626 #define INT16_C(c) __INT16_C(c)
00627 #define INT32_C(c) __INT32_C(c)
00628 #define INT64_C(c) __INT64_C(c)
00629 #define UINT8_C(c) __UINT8_C(c)
00630 #define UINT16_C(c) __UINT16_C(c)
00631 #define UINT32_C(c) __UINT32_C(c)
00632 #define UINT64_C(c) __UINT64_C(c)
00633 #define INTMAX_C(c) __INTMAX_C(c)
00634 #define UINTMAX_C(c) __UINTMAX_C(c)
00635 #else
00636 /** \ingroup avr_stdint
00637     define a constant of type int8_t */
00638 
00639 #define INT8_C(value) ((int8_t) value)
00640 
00641 /** \ingroup avr_stdint
00642     define a constant of type uint8_t */
00643 
00644 #define UINT8_C(value) ((uint8_t) __CONCAT(value, U))
00645 
00646 #if __USING_MINT8
00647 
00648 #define INT16_C(value) __CONCAT(value, L)
00649 #define UINT16_C(value) __CONCAT(value, UL)
00650 
00651 #define INT32_C(value) ((int32_t) __CONCAT(value, LL))
00652 #define UINT32_C(value) ((uint32_t) __CONCAT(value, ULL))
00653 
00654 #else /* !__USING_MINT8 */
00655 
00656 /** \ingroup avr_stdint
00657     define a constant of type int16_t */
00658 
00659 #define INT16_C(value) value
00660 
00661 /** \ingroup avr_stdint
00662     define a constant of type uint16_t */
00663 
00664 #define UINT16_C(value) __CONCAT(value, U)
00665 
00666 /** \ingroup avr_stdint
00667     define a constant of type int32_t */
00668 
00669 #define INT32_C(value) __CONCAT(value, L)
00670 
00671 /** \ingroup avr_stdint
00672     define a constant of type uint32_t */
00673 
00674 #define UINT32_C(value) __CONCAT(value, UL)
00675 
00676 #endif /* __USING_MINT8 */
00677 
00678 /** \ingroup avr_stdint
00679     define a constant of type int64_t */
00680 
00681 #define INT64_C(value) __CONCAT(value, LL)
00682 
00683 /** \ingroup avr_stdint
00684     define a constant of type uint64_t */
00685 
00686 #define UINT64_C(value) __CONCAT(value, ULL)
00687 
00688 /** \ingroup avr_stdint
00689     define a constant of type intmax_t */
00690 
00691 #define INTMAX_C(value) __CONCAT(value, LL)
00692 
00693 /** \ingroup avr_stdint
00694     define a constant of type uintmax_t */
00695 
00696 #define UINTMAX_C(value) __CONCAT(value, ULL)
00697 
00698 #endif /* !__INT8_C */
00699 
00700 /*@}*/
00701 
00702 #endif /* (!defined __cplusplus || __cplusplus >= 201103L \
00703        || defined __STDC_CONSTANT_MACROS) */
00704 
00705 
00706 #endif /* _STDINT_H_ */
 All Data Structures Files Functions Variables Typedefs Enumerations Defines