| 
 | 
 
 
发表于 2023-1-27 12:32:54
|
显示全部楼层
 
 
 
总得有一个名字呀,就是一个名字而已 
你能解释一下一个手机为什么叫苹果,叫小米吗? 
你如果生产手机的话,完全可以给你生产的手机取名叫棉花糖,这没问题,这和那些叫苹果的,叫小米的没有区别,就是一个名字 
因为需要一个名字,所以这个名字叫“闭包” 
确实,可以不叫这个名字,可以换一个名字 
例如,叫嵌套函数,(Nested Function),可是就算是叫嵌套函数,你依然可以问,为什么要叫嵌套函数呀? 
没有为什么,因为需要一个名字,所以这个名字叫嵌套函数 
gcc中就是叫嵌套函数 
- sh-5.1$ cat main.c
 
 - #include <stdio.h>
 
  
- int main(void) {
 
 -     void swap(int *a, int *b) {
 
 -         int temp = *a;
 
 -         *a = *b;
 
 -         *b = temp;
 
 -     }
 
 -     int a = 1, b = 2;
 
 -     swap(&a, &b);
 
 -     printf("%d %d\n", a, b);
 
 -     return 0;
 
 - }
 
 - sh-5.1$ gcc -g -Wall -o main main.c
 
 - sh-5.1$ ./main
 
 - 2 1
 
 - sh-5.1$
 
 
  复制代码 
 
总结:没有为什么,因为需要一个名字 |   
 
 
 
 |