5分 | |
5分 | |
5分 |
简化版:
对于C来说,“类型”意味着可以声明该类型的变量,变量有地址,有内容,可以做操作。 比如int是种类型,可以声明该类型变量a,如int a = 0; a有地址:&a; a有内容:0; 可以对a做操作:a + 1; 函数类似,不过诚如LS某位所讲,函数不是first class的,所以某些概念需用指针来表达: 个人认为“类型”最重要的特征就是“有操作”(某种意义上来说就是OO中的method)。 |
5分 |
冯·诺依曼体系。
仅供参考: //仅对VC6 #include <stdio.h> void fun1() { int f1=1; printf("fun1\n"); printf("fun1\n"); } void fun2() { int f2=2; printf("fun2\n"); } void fun3() { } void main() { #ifdef _DEBUG printf("sizeof(fun1)==%d\n",*(int *)((int)fun2+1)-*(int *)((int)fun1+1)); printf("sizeof(fun2)==%d\n",*(int *)((int)fun3+1)-*(int *)((int)fun2+1)); //sizeof(fun1)==59 //sizeof(fun2)==43 #else printf("sizeof(fun1)==%d\n",(int)fun2-(int)fun1); printf("sizeof(fun2)==%d\n",(int)fun3-(int)fun2); //sizeof(fun1)==32 //sizeof(fun2)==16 #endif } |
说函数是一种数据类型的,你得去找他才能知道原委。
|