sizeof运算符背后的逻辑

som*_*one -6 c operators sizeof

这里我们有sizeof运营商C.它返回数据类型的大小,

printf("%d",sizeof(some datatype));
Run Code Online (Sandbox Code Playgroud)

结果是4(取决于OS).

我想知道它是如何计算的.这个运营商背后的逻辑是什么?如果我请你为sizeof运营商编写代码.你的答案是什么?

注意:我想知道如何sizeof编写代码,以便能够计算大小.

我可能无法正确地提出我的问题,我在这里再试一次.

Write one function which we can use instead of sizeof operator.

Som*_*ude 5

编译器知道所有类型的大小,它必须或不能正确生成代码.该信息由sizeof运营商使用.

另请注意,sizeof在运行时不会调用某个函数,它是在编译期间完全评估的运算符.

  • @Krishna我非常肯定Joachim可以:-) - 基本上,它会产生类似`return 16`的东西.这就是编译器的作用 - 它查找类型,因为编译器知道每种类型的长度,它可以用常量替换它 (2认同)