使用void **宏的一般element_at数组

时间:2018-06-22 21:03:32

标签: c macros

我有以下C宏示例:

#include <stdlib.h>

#define ARRAY_AT(array , i, elem_size) \
*((void **)((((void *)array) + i * elem_size)))

int main(int argc, char **argv) {
    long array[5] ={1,2,3,4,5};

    long a = ARRAY_AT(array , 2, sizeof(long)); // a = 3

    return 0;
   }

我不太了解*(void **)部分,它如何工作?

0 个答案:

没有答案