inline
#
##
...
inline int square(){} //优化函数,直接将函数在调用位置展开,增加了代码的编译时间
gcc test.c -O && ./app_test.out
//有时候编译器会自动优化成内联函数,所以不加也可以……
<stdarg.h>
<stdarg.h> va_list
<stdarg.h> va_start
<stdarg.h> va_arg
<stdarg.h> va_end
int sum(int n, ...);
int sum(int n, ...)//n:可变参数的个数
{
int i, sum = 0;
va_list vap;//定义参数列表
va_start(vap, n);//初始化参数列表
for (i = 0; i < n; i++)
{
sum += va_arg(vap, int);//获取参数
}
va_end(vap);//关闭参数列表
return sum;
}
#define STR(s) # s //s中的多个空格会被变成一个空格, 自动将字符变为转义字符
#define A(x) #@x //为x加上单引号
#define TOGETHER(x, y) x ## y
#define SHOWLIST(...) PRINTF(# __VA_ARGS__) //...表示可变参数,__VA_ARGS__在与处理中被实际的参数集所替换
#define PRINT(format, ...) printf(# format, ## __VA_ARGS__) //可变参数支持空参数