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; }