程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 學點C語言(29):數據類型 - 定義新類型(typedef)

學點C語言(29):數據類型 - 定義新類型(typedef)

編輯:關於C語言

自定義的類型名一般要大寫, 以提示這是自命名的類型.

1. 把 unsigned long 更名為 UINT:

#include <stdio.h>

int main(void)
{
  typedef unsigned long UINT;

  UINT num = 1234567890;
  printf("%lu\n", num);

  getchar();
  return 0;
}

2. 給一個結構重命名:

#include <stdio.h>

int main(void)
{
  struct Rec {
    char c;
    int i;
    long d;
  };

  typedef struct Rec MYREC;

  MYREC r1;

  r1.c = 1;
  r1.i = 2;
  r1.d = 3;

  printf("%d, %d, %d\n", r1.c, r1.i, r1.d);
  printf("結構大小: %u, %u, %u", sizeof(struct Rec), sizeof r1, sizeof(MYREC));

  getchar();
  return 0;
}

3. 把整數指針定義為: PINT:

#include <stdio.h>

int main(void)
{
  typedef int * PINT;

  int num = 123;
  PINT p = &num;

  printf("%d, %p\d", *p, p);

  getchar();
  return 0;
}

4. 同時用於結構定義:

#include <stdio.h>

int main(void)
{
  struct Rec1 {
    int x,y;
  } r1 = {11, 22}; /* 同時定義了變量 r1 */

  typedef struct Rec2 {
    double a,b;
  } REC3;      /* 此時的 REC3 不是變量, 而是新定義的類型*/

  REC3 r2 = {1.1, 2.2};

  printf("%d, %d\n", sizeof(struct Rec1), sizeof(struct Rec2));
  printf("%d, %d, %d\n", sizeof(REC3), sizeof r1, sizeof r2);

  printf("\n%d, %d", r1.x, r1.y);
  printf("\n%g, %g", r2.a, r2.b);

  getchar();
  return 0;
}

返回“學點C語言 - 目錄”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved