ZHCU875Z August 2001 – October 2023 SM320F28335-EP
要访问表示地址的由链接器定义的符号,请使用 _symval 内置运算符获取符号的值来作为指针值。
例如,链接器符号 _TI_STACK_END 表示一个地址。要在 C/C++ 代码中获取符号的值来作为指针值,请使用以下语法:
extern void __TI_STACK_END;
void *get_stack_end() { return (void*)_symval(&__TI_STACK_END); }
尽管链接器符号 __TI_STACK_END 是一个地址,因此看起来非常像 C/C++ 指针值,但您无法直接将 C/C++ 变量 __TI_STACK_END 定义为指针变量并省略获取符号的地址。有关详细信息,请参阅节 8.6.4。下面是一个错误 示例。
extern void * __TI_STACK_END;
void *get_stack_end() { return __TI_STACK_END; } // wrong, missing &