1.函数传参:
1.赋值传递
2.全局变量
3.整形数组
4.字符型数组和字符串的传递
char str[32] = {"hello world"};
int fun(char str[]);
2.递归函数:
函数体在定义时调用函数体本身
5! = 5 * 4 * 3 * 2 * 1
= 5 * 4!
注意:
1.递归函数一定要有结束条件
2.避免深层次的递归
3.带参宏:
3.1.宏:
宏只是代码的替换,写代码时能加括号就加括号
#define
1.不带参宏
2.带参宏(宏函数)
3.2.带参宏和函数的区别:
1.函数是有参数类型、返回值、调用相关概念,带参宏是没有的
2.宏函数是在编译的时候加载到程序中,函数是在运行时加载到程序中
3.宏函数会使代码体积增大,函数不会使代码体积增大
4.宏函数执行效率高,函数因为有调用和传参的过程会占用系统资源开销,所以执行效率低一些
4.条件编译:
#if 条件
#elif 条件
#else
#endif
#ifdef 宏名 如果定义了该宏就加入后续代码
#ifndef 宏名 如果没有定义该宏就加入后续代码
#include <stdio.h> 在系统目录下寻找stdio.h
#include "stdio.h" 在当前目录下寻找stdio.h,如果找不到再到系统目录下找stdio.h
#ifndef __HEAD_H__
#define __HEAD_H__
#endif