示例代码
float n1; /* 作为double类型传递 */
double n2;
long n3, n4;
...
printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);
float
将会被转换为double
类型, 所以占据八个字节
内存空间表示,单位字节 | 0 - 7 | 8 - 15 | 16 - 19 | 19 - 23| | --- | --- | --- | --- | | n1 | n2 | n3 | n4 |
%ld
说明应该读取 4字节%ld
只能读取16字节, 所以 n3 与 n4 是无法被读取的