上面的代码会报initializer element is not constant 错误,错误原因是:

C语言初始化一个全局变量或static变量时,只能用常量赋值,不能用变量赋值!(错误就在void* v_p = p_a)

解决办法如下:定义成局部变量就OK了。

#include <stdio.h>
int a = 1314; 
int*  p_a = &a; 
int main(void) {
    void* v_p = p_a;
    return 0;

参考链接:

initializer element is not constant 问题