c sizeof
时间:2010-09-27 来源:camel_flying
sizeof unary-expression |
struct test { |
其实用sizeof算出来的值是:16(微软的编译器、gcc的结果)这里面存在着一个内存对齐的问题: 我要弄清楚的就是为什么要对齐、怎么对齐。 3、sizeof的返回值: 这是个让我心痛到永远的问题。因为我犯过错在这个问题上!
#include<stdio.h>
|
4、sizeof与形参:其实这个问题和sizeof没有太大的关联。列在这里是为了自己更好的记住。 先看看一个简单的示例:
#include<stdio.h> |
main中是20,func中是2。这个里面关键是参数的传递。数组类型-->指针类型了。这里就不多说了。要了解的可以网上查查资料。
5、sizeof('a')的秘密:在gcc和微软的编译器下测试都是4. 这里返回的结果是编译器自己设置的。
6、自己实现的sizeof功能的代码:
#define sizeof_v(value) (size_t)((char *)(&(value) + 1) - (char *)(&(value))) |
很明显没有什么健壮性可言。我在glibc中查找:#define sizeof没有结果。哪位大侠知道在那个文件里面通知我一下。我真的很想看看到底怎么实现的。我的邮箱:[email protected]。