• 【学习笔记】【C语言】typedef


    1.概念

    我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。

    2.作用:给已经存在的类型起一个新的名称

    3.使用场合:
     1> 基本数据类型
     2> 指针
     3> 结构体
     4> 枚举
     5> 指向函数的指针

    4.代码

      1 #include <stdio.h>
      2 
      3 typedef int MyInt;
      4 typedef MyInt MyInt2;
      5 
      6 // 给指针类型char *起一个新的类型名称String
      7 typedef char * String;
      8 
      9 /*
     10 struct Student
     11 {
     12     int age;
     13 };
     14 typedef struct Student MyStu;
     15 */
     16 
     17 /*
     18 typedef  struct Student
     19 {
     20     int age;
     21 } MyStu;
     22 */
     23 
     24 
     25 typedef struct
     26 {
     27     int age;
     28 } MyStu;
     29 
     30 /*
     31 enum Sex {Man, Woman};
     32 typedef enum Sex MySex;
     33 */
     34 
     35 typedef enum {
     36     Man,
     37     Woman
     38 } MySex;
     39 
     40 
     41 typedef int (*MyPoint)(int, int);
     42 
     43 int minus(int a, int b)
     44 {
     45     return a - b;
     46 }
     47 
     48 int sum(int a, int b)
     49 {
     50     return a + b;
     51 }
     52 /*
     53 struct Person
     54 {
     55     int age;
     56 };
     57 
     58 typedef struct Person * PersonPoint;
     59 */
     60 
     61 typedef struct Person
     62 {
     63     int age;
     64 } * PersonPoint;
     65 
     66 int main()
     67 {
     68     // 定义结构体变量
     69     struct Person p = {20};
     70     
     71     PersonPoint p2 = &p;
     72     
     73     //struct Person *p2 = &p;
     74     
     75     //MyPoint p = sum;
     76     //MyPoint p2 = minus;
     77     //int (*p)(int, int) = sum;
     78     
     79     //int (*p2)(int, int) = minus;
     80     
     81     //p(10, 11);
     82     
     83     
     84     //MySex s = Man;
     85     //enum Sex s = Man;
     86     //enum Sex s2 = Woman;
     87     
     88    // struct Student stu3;
     89     //MyStu stu = {20};
     90     //MyStu stu2= {21};
     91     
     92     return 0;
     93 }
     94 
     95 void test2()
     96 {
     97     String name = "jack";
     98     
     99     printf("%s
    ", name);
    100 }
    101 
    102 void test()
    103 {
    104     int a;
    105     MyInt i = 10;
    106     MyInt2 c = 20;
    107     
    108     MyInt b1, b2;
    109     
    110     printf("c is %d
    ", c);
    111 }

    使用注意

     1 #include <stdio.h>
     2 
     3 //#define Integer int
     4 
     5 //typedef int Integer;
     6 
     7 //typedef unsigned long int MyInt;
     8 
     9 #define String2 char *
    10 
    11 typedef char * String;
    12 
    13 int main()
    14 {
    15     /*
    16     int a,b;
    17     int a;
    18     int b;
    19     */
    20     
    21     //s1、s2是char *指针
    22     String s1, s2;
    23     /*
    24      String s1;
    25      String s2;
    26      */
    27     s1 = "jack";
    28     s2 = "rose";
    29     
    30     // s3才是char *指针,s4只是char
    31     String2 s3, s4;
    32     /*
    33     char *s3, s4;
    34     char *s3;
    35     char s4;
    36     */
    37     //String2 s3 = "jake";
    38     
    39     /*
    40     String s1;
    41     String s2;
    42     */
    43     
    44     
    45     
    46     
    47     //Integer i = 10;
    48     
    49     return 0;
    50 }
     
  • 相关阅读:
    IronPython for C#(一)
    C#winform控件的各种坐标获取
    IronPython for C#(二)
    C#string.Format
    Spire.Pdf中表格Grid的使用
    C#动态对象的创建
    WPF(触发器)
    WPF(代码实现XAML)
    C#针对PropertyGrid控件修改其常用的几个特性的值
    IronPython for C#(四)
  • 原文地址:https://www.cnblogs.com/dssf/p/4621147.html
Copyright © 2020-2023  润新知