丽水市建设工程招标网站,旅游网站制作方法,网站信息同步,ppt模板免费下载 素材红色主题【嵌入式——C语言】关键字 数字类型相关基本数据类型其他类型 存储相关registerstaticautoexternconst 控制语句相关其他 数字类型相关
基本数据类型
类型说明占用字节(32位)char声明字符型变量或函数返回值类型1字节short声明短整型变量或函数2字节int声明整型变量或函数4字… 【嵌入式——C语言】关键字 数字类型相关基本数据类型其他类型 存储相关registerstaticautoexternconst 控制语句相关其他 数字类型相关
基本数据类型
类型说明占用字节(32位)char声明字符型变量或函数返回值类型1字节short声明短整型变量或函数2字节int声明整型变量或函数4字节long声明长整型变量或函数返回值类型4字节float声明浮点型变量或函数返回值类型4字节double声明双精度浮点型变量或函数返回值类型8字节
其他类型
类型说明struct声明结构体类型union声明共用体类型enum声明枚举类型signed声明有符号类型变量或函数unsigned声明无符号类型变量或函数void声明函数无返回值或无参数声明无类型指针
struct 示例
struct Books
{char title[50];char author[50];char subject[100];int book_id;
} book; union 示例
union U
{char a;int b;
}u; enum 示例
enum DAY
{MON1, TUE, WED, THU, FRI, SAT, SUN
};signed、unsigned 示例
signed char c a;
unsigned char c a;存储相关
register
register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量,在编译的时候告诉编译器这个是寄存器变量尽量将其存储空间分配在寄存器.注意
定义的变量不一定真的在寄存器内cpu取数据的时候去寄存器中取要比去内存中取速度快因为寄存器比较宝贵所以不能定义寄存器数组只能修饰字符型和整形不能修饰浮点型不能对寄存器变量取地址只有存放在内存中的数据才有地址
代码示例
register int miles;static
static 存储类指示编译器在程序的生命周期内保持局部变量的存在而不需要在每次它进入和离开作用域时进行创建和销毁。因此使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。代码示例
static int a5;auto
auto 存储类是所有局部变量默认的存储类。定义在函数中的变量默认为 auto 存储类这意味着它们在函数开始时被创建在函数结束时被销毁代码示例
auto int month;extern
extern 存储类用于定义在其他文件中声明的全局变量或函数。当使用 extern 关键字时不会为变量分配任何存储空间而只是指示编译器该变量在其他文件中定义。代码示例 a.c文件
#include stdio.hint count ;
extern void write_extern();int main()
{count 5;write_extern();
}b.c文件
#include stdio.hextern int count;void write_extern(void)
{printf(count is %d\n, count);
}const
定义常量如果一个变量被 const 修饰那么它的值就不能再被改变,修饰普通变量代表只读的意思
const int a 10;修饰指针 const char str* str指向的内存的内容不能通过str来修改但是str的指向是可以改变的char buf12[20] helloworlk;
const char* strc1 buf12;
*strc1 w;//是错误的 表达式必须是可修改的左值
printf(strc1%s\n, strc1);char const str* str是只读变量str不能指向其他地方但是str指向的内存的内容是有可能可以修改的char buf11[20] helloworlk;
char* const strc buf11;
printf(strc%s\n, strc);//strc helloworlk
*strc w;
printf(strc%s\n, strc);//strc welloworlk
strc 123123;//是错误的const char const str* str不能指向别的地方str指向的内存的内容也不能修改char buf13[20] helloworlk;
const char* const strc2 buf13;
printf(strc2%s\n, strc2);
strc2 123123;//是错误的控制语句相关
关键字备注if条件语句else条件语句否定分支与 if 连用break跳出当前循环continue结束当前循环开始下一轮循环for一种循环语句while循环语句的循环条件do循环语句的循环体switch用于开关语句case开关语句分支goto无条件跳转语句default开关语句中的其它分支
其他
sizeof 测量变量数组的占用存储空间大小
sizeof(a);typedef 重命名相关关键字
typedef short int INT16;
//INT16 b;和short int b;是一个效果volatile 每次用volatile修饰的变量都重新去内存中取保证是最新的
volatile int vint;