C++ 在C/C+中定义全局标签+;

C++ 在C/C+中定义全局标签+;,c++,c,scope,label,C++,C,Scope,Label,我只是想定义一个全局标签,指向a.c文件中的一行代码,然后b.c文件可以识别该标签。两个文件都链接在一起。问题是b.c文件无法识别它,因为编译器/链接器认为a.c文件中的标签是特定于文件的 我在这里找到了一个类似的问题和答案: 但是我想在C/C++中定义一个全局标签,而不是在汇编中 < P> S,我不使用GOTO语句:< P>根据C++标准 标签的范围是它出现的函数 在GCC中,您可以使用内联程序集执行此操作: #定义标签符号(名称)asm volatile(“标签符号名称%=:。全局标签符号名

我只是想定义一个全局标签,指向a.c文件中的一行代码,然后b.c文件可以识别该标签。两个文件都链接在一起。问题是b.c文件无法识别它,因为编译器/链接器认为a.c文件中的标签是特定于文件的

我在这里找到了一个类似的问题和答案: 但是我想在C/C++中定义一个全局标签,而不是在汇编中


< P> S,我不使用GOTO语句:

< P>根据C++标准


标签的范围是它出现的函数

在GCC中,您可以使用内联程序集执行此操作:

#定义标签符号(名称)asm volatile(“标签符号名称%=:。全局标签符号名称%=”)

然后在代码中:

标签符号(“xxx”)

符号后面附加的
\%
确保它在编译单元()中是唯一的


然后,您可以找到检查ELF程序头的所有符号,如中所述:

您能提供一些代码示例以使其更清晰吗?我认为您尝试做的事情违背了C语言的原理。你能再解释一下吗?如果不是作为
goto
的目标,你打算用这个标签做什么?这就是C和C++中设计的所有内容,所以标签在定义的函数之外是不可见的。“标签”的意义是什么?