预处理指令与typedef

2018-10-31  本文已影响0人  SimpleSJ

1.预处理指令

常用预处理指令
1.宏定义
2.条件编译
3.文件包含


//根据运行的环境选择执行相应的代码
#if DEBUG == 0
    char *name = "lnj";
    char *pwd = "123";
#else
    char *name = NULL;
    char *pwd = NULL;
#endif

// 判断是否定义了后面的宏
#ifdef SCORE 
    printf("score\n");
#elif COUNT
    printf("count\n");
#else
    printf("OTHER\n");
#endif

// 是不是没有定义名称叫做SCORE的宏
#ifndef SCORE 
    printf("no score\n");
#else
    printf("score\n");
#endif

2.typedef

//给基本数据类型起别名
typedef int Integer;

//给结构体类型起别名
 typedef struct Person
 {
 int age;
 double height;
 char *name;
 } SPerson;

//定义枚举类型的同时给枚举类型起别名, 并且省略枚举原有类型名称
typedef enum
{
    kGenderMale,
    kGenderFemale
} SEX;

// 注意: 如果是给指向函数的指针起别名, 那么指向函数的指针的指针名称就是它的别名
// typedef id (*IMP)(id, SEL, ...); oc中的IMP类型,就是一个指向方法实现的指针
typedef int(*functionPotinter)(int , int);
int sum(int v1, int v2)
{
    return v1 + v2;
}
int main(int argc, const char * argv[]) {
Integer age = 30;
SPerson sp;
SEX sex;
sex = kGenderMale;

functionPotinter func = sum;
int a = func(5,8);
    return 0;
}

上一篇 下一篇

猜你喜欢

热点阅读