潇湘賸雁

随笔分类 -  嵌入式开发

函数指针*表示
摘要:标识符部分用以说明函数名。函数名前面加“*”时,说明返回值是指针。被圆括号括起来,如(*函数名),则标识符是函数指针。如果括号外再加分隔符“*”,如*(*函数名),则标识符是函数指针,且函数的返回类型是指针类型。 阅读全文

posted @ 2012-10-06 16:19 chuyanchao 阅读(370) 评论(0) 推荐(0)

内存对齐问题总结
摘要:当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的首地址等于整个结构体实例的首地址。比如有这样一个结构体: struct vector{int x,y,z;} s; int *p,*q,*r; struct vector *ps; p = &s... 阅读全文

posted @ 2012-10-06 11:49 chuyanchao 阅读(340) 评论(0) 推荐(0)