1. 字符型数组和字符串传递
char str[32] = {"hello world"};
int fun(char str[]);
2. 递归函数
函数在定义时,自己调用自己
注意:
1. 递归必须有终止条件
2. 避免深层次的递归
3. 宏
3.1 不带参宏(宏定义)
#define PI 3.14
3.2 带参宏(宏函数)
1. 单行
#define ADD(x, y) (x+y)
2. 多行
#define PRINT(a, b) do { \
printf("a = %d\n", a); \
printf("b = %d\n", b); \
} while (0)
3.3 注意
1. 宏只是代码的替换,定义时能加括号加括号,能能大写大写
2.带参宏和函数的区别
1. 函数有参数类型、返回值、调用等相关概念,带参宏没有
2. 宏函数是在编译时加载到程序中,函数是在程序运行调用函数时加载到程序中
3. 宏函数会使代码体积增大,函数不会使代码体积增大
4. 宏函数执行效率高,函数因为调用、传参等步骤占用系统资源,执行效率低于宏函数
4. 条件编译
4.1 #if
4.2 #elif
4.3 #endif
4.4 #ifdef
4.5 ifndef
注意:
#include <stdio.h> 在系统目录下寻找stdio.h
#include "stdio.h" 优先在当前目录下寻找stdio.h,找不到再去系统目录下寻找
5. 头文件(filename.h)
一般写全局变量的声明,功能函数的声明,结构体类型的定义