1.__func__的使用
可以表示函数名
例如
void f(void)
{
printf("%s\n",__func__); //打印f
}
int main()
{
f();
printf("%s\n",__func__); //打印main
}
2.p->的使用
p->等同于(*p).
struct date
{
int month;
int year;
int day;
};
int main()
{
struct date today;
struct date *p = &today;
// (*p).month = 12;
p->month = 12;
3.全局变量与本地变量
①如果在有全局变量的情况下,函数又定义了相同的变量,此时全局变量隐藏
②static的使用,静态本地变量,可以让本地变量离开之后,下次仍然有效(全局生存期,本地作用域) (静态本地变量其实就是全局变量,地址都是挨在一起的)
void f(void)
{
static i = 10;
i++;
printf("%d\n",i);
}
int main()
{
f();
f();
}
此时输出的是11 12
错误的做法
理解全局生存期,本地作用域
③不要返回本地变量的地址