成都嵌入式学习笔记:c高级函数知识整理

1. 函数的声明和定义

函数返回值为const char *

如返回malloc的首地址

2. 函数传参:

二维数组名传参时,可以选择行指针或列指针传递

成都嵌入式学习笔记:c高级函数知识整理_第1张图片

3. 函数的调用

入栈:push

出栈:pop

Main函数也会入栈;先进后出;

4. 全局变量

Extern 数据类型说明符

Extern一定要全局变量;

Static 存储类型说明符 变量

Static函数:

只限本文件使用,

延长生命周期(程序运行的整个区间)

成都嵌入式学习笔记:c高级函数知识整理_第2张图片

5. 寄存器(不能取地址)

成都嵌入式学习笔记:c高级函数知识整理_第3张图片

Cpu的缓存

6. \n 换行

\r 光标回到行首,删除整行

7. 函数的递归

注意栈的溢出

下溢:使劲push

上溢:使劲pop

递归的栈操作

递 + 归

8. 函数指针

函数的入口地址

Typedef int (*PFUNC)(int,int);

定义类型

9. 条件编译 #endif

成都嵌入式学习笔记:c高级函数知识整理_第4张图片

通常用于版本控制

Gcc -D VERSION_1

10. Main函数传参

Main函数是一个字符指针数组传参

指针指向内容存储于栈区;即命令行参数存储于栈中;

字节对齐:32位即

最大的字节数小于4字节以最大的对齐;

最大的字节数大于4字节以4字节对齐;

成都嵌入式学习笔记:c高级函数知识整理_第5张图片

位域:

成都嵌入式学习笔记:c高级函数知识整理_第6张图片

s占1字节;

若char b=7; 则占2字节;

枚举

通常用作错误码:见名之一

没有成员访问预算符 .

C规定4字节;

共用体

所有成员有相同的首地址;

有成员访问操作符号;

成都嵌入式学习笔记:c高级函数知识整理_第7张图片

错误!!!!!!!!

Malloc操作

注意判空;

注意free释放,一定保护好首地址;

Memset清空

你可能感兴趣的:(成都嵌入式学习笔记:c高级函数知识整理)