1. ホーム
  2. c++

このtypedef文は何を意味しているのですか?

2023-10-09 11:20:01

質問

C++のリファレンスページで、いくつかのtypedefの例を提供していますが、その意味を理解しようとしています。

// simple typedef
typedef unsigned long mylong;


// more complicated typedef
typedef int int_t, *intp_t, (&fp)(int, mylong), arr_t[10];

ということで、単純なtypedef(最初の宣言)は理解できました。

しかし、2つ目の宣言(以下繰り返し)で何を宣言しているのでしょうか?

typedef int int_t, *intp_t, (&fp)(int, ulong), arr_t[10];

特に (&fp)(int, mylong) は何を意味するのでしょうか?

どのように解決するのですか?

一度に複数の変数を宣言できるように、一度に複数のtypedefを宣言しているのです。それらはすべて int に基づく型ですが、いくつかは複合型に変更されています。

別々の宣言に分割してみましょう。

typedef int int_t;              // simple int
typedef int *intp_t;            // pointer to int
typedef int (&fp)(int, ulong);  // reference to function returning int
typedef int arr_t[10];          // array of 10 ints