4.3 KiB
title | TARGET DECK | FILE TAGS | tags | |
---|---|---|---|---|
Typedefs | Obsidian::STEM | c17::type |
|
Overview
The <stddef.h>
header defines a few standard typedef
s:
ptrdiff_t
: the signed integer type of the result of subtracting two pointers.size_t
: the unsigned integer type of the result of thesizeof
operator.
The standard often uses typedef
s ending with _t
.
%%ANKI
Basic
What is the type of x
in the following?
#define int_ptr int *
int_ptr x, y;
Back: int *
Reference: Van der Linden, Peter. Expert C Programming: Deep C Secrets. Programming Languages / C. Mountain View, Cal.: SunSoft Pr, 1994.
END%%
%%ANKI
Basic
What is the type of y
in the following?
#define int_ptr int *
int_ptr x, y;
Back: int
Reference: Van der Linden, Peter. Expert C Programming: Deep C Secrets. Programming Languages / C. Mountain View, Cal.: SunSoft Pr, 1994.
END%%
%%ANKI
Basic
What is the type of x
in the following?
typedef int_ptr int *
int_ptr x, y;
Back: int *
Reference: Van der Linden, Peter. Expert C Programming: Deep C Secrets. Programming Languages / C. Mountain View, Cal.: SunSoft Pr, 1994.
END%%
%%ANKI
Basic
What is the type of y
in the following?
typedef int_ptr int *
int_ptr x, y;
Back: int *
Reference: Van der Linden, Peter. Expert C Programming: Deep C Secrets. Programming Languages / C. Mountain View, Cal.: SunSoft Pr, 1994.
END%%
%%ANKI
Basic
What header defines size_t
?
Back: <stddef.h>
Reference: “ISO: Programming Languages - C,” April 12, 2011, https://port70.net/~nsz/c/c11/n1570.pdf.
END%%
%%ANKI
Basic
What header defines ptrdiff_t
?
Back: <stddef.h>
Reference: “ISO: Programming Languages - C,” April 12, 2011, https://port70.net/~nsz/c/c11/n1570.pdf.
END%%
%%ANKI
Basic
ptrdiff_t
is used as the type of what result?
Back: Subtracting two pointers.
Reference: “ISO: Programming Languages - C,” April 12, 2011, https://port70.net/~nsz/c/c11/n1570.pdf.
END%%
%%ANKI
Basic
size_t
is used as the type of what result?
Back: The sizeof
operation.
Reference: “ISO: Programming Languages - C,” April 12, 2011, https://port70.net/~nsz/c/c11/n1570.pdf.
END%%
%%ANKI
Basic
Is ptrdiff_t
signed or unsigned?
Back: Signed.
Reference: “ISO: Programming Languages - C,” April 12, 2011, https://port70.net/~nsz/c/c11/n1570.pdf.
END%%
%%ANKI Basic When can two pointers be subtracted? Back: Only if both refer to elements of the same array object. Reference: Jens Gustedt, Modern C (Shelter Island, NY: Manning Publications Co, 2020).
END%%
%%ANKI
Basic
What is the result of p - q
in the following?
double A[4] = { 0.0, 1.0, 2.0, -3.0 };
double* p = &A[1];
double* q = &A[3];
Back: -2
Reference: Jens Gustedt, Modern C (Shelter Island, NY: Manning Publications Co, 2020).
END%%
%%ANKI
Basic
What is the result of p - q
in the following?
double A[4] = { 0.0, 1.0, 2.0, -3.0 };
double* p = &A[3];
double* q = &A[1];
Back: 2
Reference: Jens Gustedt, Modern C (Shelter Island, NY: Manning Publications Co, 2020).
END%%
%%ANKI
Basic
Is size_t
signed or unsigned?
Back: Unsigned.
Reference: “ISO: Programming Languages - C,” April 12, 2011, https://port70.net/~nsz/c/c11/n1570.pdf.
END%%
%%ANKI
Basic
The C standard typically suffixes typedef
s with what?
Back: _t
Reference: Jens Gustedt, Modern C (Shelter Island, NY: Manning Publications Co, 2020).
END%%
Bibliography
- “ISO: Programming Languages - C,” April 12, 2011, https://port70.net/~nsz/c/c11/n1570.pdf.
- Jens Gustedt, Modern C (Shelter Island, NY: Manning Publications Co, 2020).
- Van der Linden, Peter. Expert C Programming: Deep C Secrets. Programming Languages / C. Mountain View, Cal.: SunSoft Pr, 1994.