typedef与#define
typedef和#define的区别?
#define在预处理时进替换,不作正确性检查;
typedef是关键字,在编译时处理,会检查语法错误;
#define没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef enum { LED_1, LED_2, LED_3 }LED; typedef enum { LED_ON, LED_OFF }LED_CON; void init(LED N) { switch(N) { case LED_1: printf("LED1已完成初始化\n"); break; case LED_2: printf("LED2已完成初始化\n"); break; case LED_3: printf("LED3已完成初始化\n"); break; } } void con(LED N,LED_CON C) { switch(C) { case LED_ON: switch(N) { case LED_1: printf("LED1灯已打开\n"); break; case LED_2: printf("LED2灯已打开\n"); break; case LED_3: printf("LED3灯已打开\n"); break; } break; case LED_OFF: switch(N) { case LED_1: printf("LED1灯已关闭\n"); break; case LED_2: printf("LED2灯已关闭\n"); break; case LED_3: printf("LED3灯已关闭\n"); break; } break; } } int main(int argc, const char *argv[]) { init(LED_1); con(LED_2,LED_ON); return 0; }