//以#开头的叫做预编译指令.
//预编译阶段做一些文本以及代码的替换工作.
#import <Foundation/Foundation.h>
//#import "<#header#>" 导入自定义的头文件
//#import <<#header#>> 导入系统定义的头文件
//面试题:#include 与 #import 的区别.
//#import 相比 #include 能够防止重复导入, 引起交叉编译.
//变量名,数组名,函数名,结构体名,工程名,文件名,宏名,枚举名.
//变量名,数组名,函数名 命名规范由多个单词组成,除了第一个单词首字母小写,其余单词首字母全部大写.
//工程名,文件名,枚举名,结构体名 命名规范由多个单词组成,每个单词首字母全部大写.
//宏名 全部大写
//定义枚举
//枚举的作用:罗列出所有的可能性.
//枚举是将人能识别的标识符和计算机能够识别的数字结合在一起.
enum Season {
//枚举值是一个常量(不可改变),每一个枚举值都对应一个整数值.
//枚举值的数值如果没对应则为前一个+1.
Spring = 100,
Sumer = 200,
Autumn = 300,
Winter = 400
};
typedef enum Season Season;
enum Button {
//通过1的每一位来表示一个状态.
Close = 1 << 0,//第一位为1表示关闭
Max = 1 << 1, //第二位为1表示最大化
Min = 1 << 2 //第三位为1表示最小化
};
typedef enum Button Button;
/**
000 --- 全都没有
001 --- 关闭
010 --- 最大化
011 --- 关闭 最大化
100 --- 最化小
101 --- 最化小 关闭
110 --- 最化小 最大化
111 --- 最化小 最大化 关闭
*/
int main(int argc, const char * argv[])
{
/*
//当一个常量在判断是否相等时,把常量写在左边.
int a = 10;
if (0 == a) {
printf("a = %d\n", a);
}
*/
//条件编译(根据条件编译工程的代码)
#define AAA
/*
#ifdef AAA
int a = 10;
#else
int a = 20;
#endif //条件定义结束标志
printf("a = %d\n", a);
*/
/*
#ifndef AAA
int a = 10;
#else
int a = 20;
#endif //条件编译的结束标志
printf("a = %d\n", a);
*/
/*
#if 0
int a = 10;
#else
int a = 20;
#endif
printf("a = %d\n", a);
*/
/*
Season a = Winter;
printf("输入季节(Spring:100, Sumer:200, Autumn:300, Winter:400)\n");
scanf("%d", &a);
switch (a) {
case Spring:
printf("春天\n");
break;
case Sumer:
printf("夏天\n");
break;
case Autumn:
printf("秋天\n");
break;
case Winter:
printf("冬天\n");
break;
default:
printf("输入错误\n");
break;
}
*/
//如果想保存多个枚举值,按位或即可,前提是枚举值是通过左移符号对应值.
//Button b = Close | Max | Min;
return 0;
}
****************************************************************************************************************************************
#ifndef LessonEnum_Function_h
#define LessonEnum_Function_h
int maxValue(int x,int y);
int maxValue(int x,int y)
{
return x > y ? x : y;
}
#endif