在C中紧接着声明一个符号

时间:2017-11-23 01:19:10

标签: c gcc clang

我希望导出一个指向全局数组末尾的符号,如下所示:

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[];

0 个答案:

没有答案