How does sizeof work? How can I write my own?

后端 未结 10 2544
粉色の甜心
粉色の甜心 2021-02-08 07:29

I know C++ and know the function sizeof itself but I need to write my own sizeof function so please explain how it works exactly? What does it do with the parameter

10条回答
  •  佛祖请我去吃肉
    2021-02-08 08:20

    sizeof isn't a function. It's an operator in C. We can implement its functionality something like follows.

    #include 
    
    #define mysizeof(X)  \
    
               ({                    \
                      __typeof(X) x;  \
                      (char *) (&x+1) - (char*) (&x); \
               })
    int main()
    {
    
         struct sample
         {
             int a;float b; char c;
         };
    
         printf("%d", mysizeof(struct sample));
         return 0;
    }
    

    Answer : 12

提交回复
热议问题