notebook/notes/c17/typedefs.md

4.3 KiB

title TARGET DECK FILE TAGS tags
Typedefs Obsidian::STEM c17::type
c17

Overview

The <stddef.h> header defines a few standard typedefs:

  • ptrdiff_t: the signed integer type of the result of subtracting two pointers.
  • size_t: the unsigned integer type of the result of the sizeof operator.

The standard often uses typedefs 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 typedefs 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.