看来sizeof不是真正的功能吗?
例如,如果你这样写:
int i=0;
printf("%d\n", sizeof(++i));
printf("%d\n", i);
Run Code Online (Sandbox Code Playgroud)
你可能得到如下输出:
4
0
Run Code Online (Sandbox Code Playgroud)
当你深入研究汇编代码时,你会发现这样的:
movl $4, %esi
leaq LC0(%rip), %rdi
xorl %eax, %eax
call _printf
Run Code Online (Sandbox Code Playgroud)
所以,编译器直接将常量"4"作为printf的参数添加调用它.那尺寸做什么呢?