目录
1、#define 宏定义
define不仅可以为类型定义别名,还可以为数值定义别名。
#define CONST const
#define ADDRESS 0x0100
#define LENGTH 100
2、关键字
2.1、const 关键字
const uint16_t NUMBER= 10;
const type variable = value ; (type 数据类型;variable 变量名;value 变量值)
2.2、static 关键字
①静态局部变量:在函数内部定义的静态变量,即便函数返回,它的值也不会改变。如果未对该变量赋初值,编译器会把它初始化为1。
void para_t (void)
{
static int number = 10; /* 声明局部变量 */
number--;
......
}
②静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量。
static int count = 10; /* 声明全局变量 */
③使用static关键字声明的函数,只能用于该函数文件中。
static void DeviceEnable( ); /* 使用static关键字声明该函数 */
2.3、extern 关键字
利用extern关键字声明,可以在本文件中引用另一个文件定义的函数或者变量。
①提供全局变量的引用
extern int count; /* 声明 */
②提供函数的引用
extern void WriteEnable( ); /* 函数*/
2.4、auto 关键字
只能用在函数内,只能修饰局部变量。
void day_t (void)
{
auto int day;
.....
}
2.5、register 关键字
只用于需要快速访问的变量,变量可能存储在寄存器中。
void kilo_t (void)
{
register int kilo;
.......
}
3、struct 结构体
使用结构体(struct) 来存放相同或不同类型的数据。结构体是一种集合,它里面包含了多个变量或数组,每个变量或数组都称为结构体的成员。
typedef union
{
uint16_t SwId[SW_LENGTH];
struct
{
union
{
uint16_t Company[2];
struct
{
uint16_t Value_A : 8;
uint16_t Value_B : 8;
uint16_t Value_C : 8;
uint16_t Value_D : 8;
};
};
uint16_t Model;
uint16_t Rsvd40[2];
};
}sw_variant_t;
4、枚举(enum)
使用枚举,可以使代码看起来更简洁。
typedef enum
{
YEAR = 1,
MONTH = 2,
DAY = 3,
}date_t;
暂且先总结这些,后续再继续补充。