我希望导出一个指向全局数组末尾的符号,如下所示:
char my_array[ARRAY_SIZE];
char my_array_end[] = &my_array[ARRAY_SIZE];
但是上面没有编译:
prog.c:5:28: error: invalid initializer
char my_array_end[] = &my_array[ARRAY_SIZE];
^
以下编译和完美工作,但感觉有点脆 - 更不用说非便携式。有没有办法在C中实现这个目的?
__asm__ (
".global my_array;"
".section .lbss,\"aw\",@nobits;"
".type my_array, @object;"
".size my_array, " ARRAY_SIZE ";"
"my_array:;"
".zero " ARRAY_SIZE ";"
".global my_array_end;"
"my_array_end:;"
);
extern char my_array[ARRAY_SIZE];
extern char my_array_end[];