sizeof百度百科
sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用。
C99标准规定,函数(不能求一个返回类型为void的函数的sizeof值)、不能确定类型的表达式以及位域成员不能被计算sizeof值。
让宽度为2的基本数据类型(short等)都位于能被2整除的地址上,让宽度为4的基本数据类型(int等)都位于能被4整除的地址上,以此类推。
字节对齐的细节和编译器实现相关,但一般而言,满足三个准则:
1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;
2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding);
3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。
sizeof
31 7 月, 2010SQL递归游戏
31 7 月, 2010Windows Mobile模拟器问题
27 7 月, 2010About size_t and ptrdiff_t
18 7 月, 2010size_t和ptrdiff_t都与机器和平台有关。
size_t的基础是无符号整型,但是它能存储理论上数组的最大值。在32位系统上它是32位的,在64位系统上它是64位的,因此一个size_t类型的变量能够安全的存储一个指针。size_t类型的最大值是常量SIZE_MAX。
ptrdiff_t的基础是有符号整型,但是它能存储理论上数组的最大值。在32位系统上它是32位的,在64位系统上它是64位的,因此一个ptrdiff_t类型的变量能够安全的存储一个指针。ptrdiff_t类型还是两个指针(地址)相减的返回值类型。
详细请见:
http://blog.163.com/lgy-047/blog/static/61346565200910921449408/
new operator, operator new and placement new
18 7 月, 2010new operator由C++语言定义,分配空间(调用operator new),构造对象(调用placement new)。详细请见:
http://www.cnblogs.com/swpattern/archive/2010/05/11/1732352.html