变量放到.my_section里为啥能被其他模块用呢
时间: 2024-04-02 18:37:57 浏览: 47
如果将变量放到自定义的节(如".my_section")中,其他模块是不能直接使用这个变量的。因为这个变量在自定义的节中,而不是默认的数据节或者代码节中。其他模块无法访问这个自定义节中的变量,除非它们知道这个变量所在的节的名称,并且知道如何访问这个节中的内容。
如果想要在其他模块中使用一个放置在自定义节中的变量,需要使用GCC提供的一些特殊语法和函数。例如,可以使用__attribute__((section("section_name")))语法声明一个指向自定义节中变量的指针,然后在其他模块中使用这个指针来访问自定义节中的变量。还可以使用特殊的链接脚本来将自定义节中的变量映射到其他模块中的内存地址空间中,从而使其他模块可以访问这个变量。
总之,将变量放置到自定义节中只是一种控制程序内存布局的方式,并不能直接使其他模块可以访问这个变量。需要使用一些特殊的语法和技巧来实现在其他模块中访问自定义节中的变量。
阅读全文