如果C源有一个未使用的标签,我认为它(当前)有用的唯一原因是,如果有人将其用作"书签"以轻松找到一段代码.除非有这些原因,为什么不使用标签可能不想被删除有任何技术原因吗?换句话说,是否有可能通过删除它们来破坏编译单元,以便外部编译单元可能以某种方式使用它?
编辑:我修改的具体代码是C89之前,所以历史C行为可能会有所作为.
对于C99,C11标准来说肯定是安全的,其中明确指出:
标签名称是唯一具有功能范围的标识符.它可以在(在goto语句中)在它出现的函数中的任何地方使用,并且通过其语法外观(后跟:和语句)隐式声明.
因此,如果标签在功能内部未使用,您可以将其删除.
PS在C89标准中我们有:
标签名称是唯一具有功能范围的标识符.它可以在(在goto语句中)在它出现的函数中的任何地方使用,并且通过其语法外观(后跟:和语句)隐式声明. 标签名称在功能中应是唯一的.
标签再次被限制在功能范围内,而且在旧的光荣书籍K&R C语言中,第58页§3.8转到和标签说:
标签与变量名称具有相同的形式,后跟冒号.它可以附加到与goto相同的函数中的任何语句.标签的范围是整个功能.
所以你可以安全地将它们从各处移除.