loutin 发表于 2025-2-20 16:25

goto关键字

一、goto关键字
#include <stdio.h>

int main()
{
        int a = 10;
start://冒号记得要加
        printf("%d\n", a);
        if (a > 0)
        {
                printf("hello\n");
        }
        goto start;

        return 0;
}
goto关键字使用注意事项:goto语句只能用于在当前函数内部进行跳转,不能跨函数或跳出函数

二、void关键字
void本身就被解释为空类型,强制不允许定义变量,因为大小不明确
不允许强制类型转化 int a = (void)10写法错误
C语言中,函数可以不带返回类型,此时默认返回值是int,比如定义函数:add()此函数没带返回类型,默认返回int,并且默认函数不需要参数
add(void)明确函数不需要参数,如果一个函数没有参数,将参数列表设置成void,是一个不错的习惯,因为可以将错误明确提前发现
void修饰函数返回值时,①:占位符,让用户明确不需要返回值 ②:告知编译器此返回值无法接受
void*
void* 可以定义变量,因为是指针,类型明确,大小为4/8个字节
void* 能被任何类型的指针接收
void* 能接收任意类型的指针(常用)
void* 的指针不能解引用,不能加减
在vs中sizeof(void)为0,而在Linux中sizeof(void)为1可以解引用和加减运算(了解)


jkl21 发表于 2025-3-10 09:54

滥用 goto 会打乱代码的自然流程,使得逻辑难以追踪。

burgessmaggie 发表于 2025-3-10 10:21

在大多数情况下,可以使用条件语句(if-else、switch)、循环控制语句(break、continue)和函数调用来代替goto语句。

mickit 发表于 2025-3-10 11:21

虽然goto关键字在某些特定情况下可能是有用的,但通常情况下最好避免使用它。在使用goto时,务必谨慎考虑其对代码可读性、可维护性和调试难度的影响。

sdlls 发表于 2025-3-11 16:14

在使用goto语句时,要注意资源的释放问题。例如,在文件操作或动态内存分配后,如果发生错误需要跳转到错误处理代码段,应确保在跳转前释放已分配的资源,避免内存泄漏或文件占用。

plsbackup 发表于 2025-3-11 17:26

如果必须使用 goto,尽量限制在简单的跳转,比如跳出多层循环。
避免跨函数使用 goto。

jonas222 发表于 2025-3-12 16:07

使用goto集中处理错误,避免了重复的资源释放代码,提高了代码的清晰度。

linfelix 发表于 2025-3-12 19:55

在 goto 跳转前后避免修改同一个变量,因为这可能会导致状态不一致。

zerorobert 发表于 2025-3-12 20:27

在大多数情况下,可以使用更结构化的控制流语句(如if-else、while、for、switch-case等)来替代goto。这些语句通常更容易理解和维护。

mikewalpole 发表于 2025-3-12 20:59

如果确实需要使用goto语句,请确保使用有意义的标签名称,以增加代码的可读性。
避免在嵌套结构中使用goto,以免使程序逻辑难以理解。

plsbackup 发表于 2025-3-12 21:34

不恰当的跳转可能导致程序逻辑错误,引入难以发现的bug

modesty3jonah 发表于 2025-3-14 10:22

合理使用 goto 可以提高代码效率,但过度依赖会严重影响代码质量。建议遵循“能用其他方式解决的,绝不使用 goto”的原则。

abotomson 发表于 2025-3-14 15:20

尽可能使用if、else、for、while等结构化语句替代goto,提高代码的可读性和可维护性

wwppd 发表于 2025-3-14 15:52

goto语句可能导致程序结构不清晰,容易引入bug,特别是在较大的代码库中。因此,应尽量避免滥用goto语句,除非有特殊的需求或优势。

maqianqu 发表于 2025-3-14 16:51

跳转不会越过变量的声明和初始化语句,防止变量未定义或未初始化

uytyu 发表于 2025-3-15 10:44

在多层函数调用中快速终止并返回。

tifmill 发表于 2025-3-15 12:10

将复杂逻辑封装到函数中,通过函数调用实现跳转,避免使用goto。

tabmone 发表于 2025-3-15 13:20

频繁使用goto会导致代码结构混乱,难以跟踪程序执行流程,增加调试和维护难度

ccook11 发表于 2025-3-15 14:17

在C语言中,标签是局部的,无法在函数之间共享。因此,标签的作用域仅限于定义它们的代码块内。这意味着goto语句只能在一个函数内部跳转,不允许跳转出一个函数外部。

maudlu 发表于 2025-3-15 15:38

goto 可能直接跳过关键代码            
页: [1] 2 3
查看完整版本: goto关键字