// #define a int[10] #include <stdio.h> #include <stdlib.h> #define a int[10] int main() { int *p=(int *)malloc(sizeof(a)); p[0]=1; printf("%d\n",p[0]); return 0; } // typedef int a[10]; #include <stdio.h> typedef int a[10]; in…
typedef int(init_fnc_t) (void); 这个就是一个取别名的过程. 我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a; 这个时候我们的MyInt 就和int是一样的意思. 而对于函数的申明我们通常会这样申明:int InitFunction(void);此时表示申明了一个函数名为InitFunction的函数, 函数没有任何的形参,返回值类型为int型. 而对于 typedef int(init_fnc_t) (void);就…
typedef int a[10]; a b[10]; 为什么分配400个字节的空间? int a[10];为什么分配了40个字节的空间? 问题:应该怎么解释typedef的这种行为呢?而如果换成是#define a int[10];以上定义则报错? typedef int a[10]; 说明a就等同于int[10]类型..所以 a b[10];//等同与int b[10][10]; 而int a[10];这里的a代表的不是类型..而是数组名.. 而#define只是字符替换而已.. a b[1…
正是求职笔试旺季,前几天听说有人遇到此题:#define a 10 和const int a=10的区别,废话不多说,下面来解释一下: #define 指令是定义符号常量 const   定义的是常变量(变量的值不能改变) 符号常量只是用一个符号常量代替一个字符串,在预编译的时候进行替换回来.没有类型,在内存中不存在以符号长量命名的内存单元: 而变量是具有类型的,在内存中也存在着以它命名的内存单元,并且可以用sizeof测出他的长度 上面的区别也就是说第一个a是没有类型的,是一个符号常量 而第二…
在读uboot的lib_arm/board.c中的start_armboot ()函数遇到了"init_fnc_t **init_fnc_ptr;”一句话,后来查看init_fnt_t数据类型的定义,看到“typedef int (init_fnc_t) (void);”,不过这句话似乎也不容易看懂,经过一番搜索和实验,才知其确切含义. 先看看这个“typedef int (*init_fnc_t) (void);”.后者很清楚就是定义了一个指向int (function)(void)类型函数的…
lpAddFun是typedef定义的一个名称 可以用来定义变量 比如 lpAddFun p; 那 p就是 int(*p)(int, int); 首先(*p)说明p是一个指针,(*p)();说明p指向函数 (*p)(int, int)说明p指向的函数有两个int类型参数, 最后 int(*p)(int, int); 说明 p指向的函数返回 值类型是int…
下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y),y++); 输出结果为A  (y++优先级比较高,所以先计算y++,再计算()里面的内容)…
String.format("%010d", 25); 0代表前面要补的字符 10代表字符串长度 d表示参数为整数类型 String s = "Hello World!"; int i = 13 ; double d = 88.8 ; System.out.printf("整形数据i = %2$+-10d \n字符串 s = %1$s \n浮点数据 d = %3$3.2f", s , i , d); System.out.printf("…
1.typedef  int (init_fnc_t) (void);表示定义init_fnc_t为函数类型,该函数返回int型,无参数.而“init_fnc_t  *init_sequence[]={ cpu_init,  board_init }”表示用init_fnc_t(函数类型)去定义一个一维指针数组,数组中的元素都是指针变量,而且都是指向函数的指针,这些函数返回值都是int型,无参数的.更明朗的说就是数组中的每个元素是用来存放函数入口首地址的. 2.int (*init_fnc_t)…
转:http://blog.sina.com.cn/s/blog_4850a7880100hnam.html void (*signal(int signo, void (*fun(int))))(int) int (*p)(); 这是一个函数指针, p所指向的函数是一个不带任何参数, 并且返回值为int的一个函数. int (*fun())(); 这个式子与上面式子的区别在于用fun()代替了p,而fun()是一个函数,所以说就可以看成是fun()这个函数执行之后,它的返回值是一个函数指针,这…