1.字符数组和字符串的传递
char str[32] = {"hello world!"};
int fun(char str[]); ----不需要传长度;
2. 带参宏(宏函数)
#include M+N
#define M
带参宏和函数的区别:
1. 函数有参数类型、返回值、调用相关概念,而带参宏没有;
2. 宏函数是在编译时加载到程序中,而函数是运行时加载到程序中;
3. 宏函数会使代码体积增大,而函数不会;(因为宏函数是代码的替换,展开时就会增大体积,而函数有调用的过程不会展开。)
4. 宏函数执行效率高,函数因为有调用和传参的过程,会占用系统资源的开销,执行效率就低一些;
3. 使用场景:
宏函数:函数较短的场景(例如判断是否为闰年);
函数:所需代码较长时;
4. 条件编译:
#if 条件
#elif 条件
#else
#endif
#ifdef 宏名 ----若定义了该宏就加入后续代码;
#ifndef 宏名 ----若没有定义该宏就加入后续代码;
#include <stdio.h> ---在系统目录下寻找stdio;
#include "stdio.h" ---当前目录下寻找stdio,若找不到再去系统目录下找;