首页 > 代码库 > typedef使用

typedef使用

1, 定义函数指针 typedef 返回值 (*别名)(参数列表)

如typedef int (*f)(int) , f是定义类型为int (*)(int)的函数指针

2, 定义数组 typedef 数组类型 别名[数组大小]

如typedef int vec[20], vec是定义为int[20]的数组

vec a == int a1[20]

3, 定义数组指针 typedef 类型 (*别名)[数组大小]

如typedef int (*vec)[20], vec为指向int[20]的指针

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 20
typedef double (*f)(int, int, char); //function point
typedef int vecInt[MAX_SIZE]; //vector int
typedef int (*vec)[MAX_SIZE];

double calc(int a, int b, char op)
{
  switch(op)
    {
    case ‘+‘:
      return a + b;
    case ‘-‘:
      return a - b;
    case ‘*‘:
      return a * b;
    case ‘/‘:
      return a / b;
    }
}

int main(int argc, char* argv[])
{
  f func = calc;
  printf("%lf\n",func(2,3,‘-‘));
  vecInt a = {
    1, 2, 3, 4, 5, 
    1, 2, 3, 4, 5,
    1, 2, 3, 4, 5,
    1, 2, 3, 4, 5,
  };
  for (int i = 0; i < MAX_SIZE; i ++)
    {
      printf("a[%d] = %d\n", i, a[i]);
    }
  vec b;
  int c[2][MAX_SIZE] = {0};
  b = c;
  b[0][0] = 1;
  printf("%d\n", b[0][0]);
  return 0;
}


typedef使用