NAME |LIBRARY |SYNOPSIS |DESCRIPTION |STANDARDS |HISTORY |NOTES |SEE ALSO |COLOPHON | |
intptr_t(3type)intptr_t(3type)intptr_t, uintptr_t - integer types wide enough to hold pointers
Standard C library (libc)
#include <stdint.h>typedef/* ... */intptr_t;typedef/* ... */uintptr_t;#define INTPTR_WIDTH/* ... */#define UINTPTR_WIDTH INTPTR_WIDTH#define INTPTR_MAX/* 2**(INTPTR_WIDTH - 1) - 1 */#define INTPTR_MIN/* - 2**(INTPTR_WIDTH - 1) */#define UINTPTR_MAX/* 2**UINTPTR_WIDTH - 1 */
intptr_t is a signed integer type such that any valid (void *) value can be converted to this type and then converted back. It is capable of storing values in the range [INTPTR_MIN,INTPTR_MAX].uintptr_t is an unsigned integer type such that any valid (void *) value can be converted to this type and then converted back. It is capable of storing values in the range [0,UINTPTR_MAX]. The macros [U]INTPTR_WIDTHexpand to the width in bits of these types. The macros [U]INTPTR_MAXexpand to the maximum value that these types can hold. The macroINTPTR_MINexpands to the minimum value thatintptr_t can hold. The length modifiers for the [u]intptr_t types for theprintf(3) family of functions are expanded by the macrosPRIdPTR,PRIiPTR, andPRIuPTR(defined in<inttypes.h>); resulting commonly in%"PRIdPTR"or%"PRIiPTR"for printingintptr_t values. The length modifiers for the[u]intptr_t types for thescanf(3) family of functions are expanded by the macrosSCNdPTR,SCNiPTR, andSCNuPTR (defined in<inttypes.h>); resulting commonly in%"SCNuPTR"for scanninguintptr_t values.
C11, POSIX.1-2008.
C99, POSIX.1-2001.
The following header also provides these types:<inttypes.h>.
intmax_t(3type),void(3)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17intptr_t(3type)Pages that refer to this page:intmax_t(3type), intN_t(3type), void(3type)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |