C语言笔记 第八课 goto 和void分析

本文深入探讨了goto语句在现代软件工程中的负面影响,以及为何应将其摒弃。同时,详细解析了void在C语言中的独特作用,包括其在函数声明中的应用及void指针的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第八课 goto 和void分析

遭人遗弃的goto

高手潜规则:禁用goto
项目经验:程序质量与goto的出现次数成反比
最后的判断:将goto打入冷宫
8-1 goto副作用分析

void的意义

void修饰函数返回值和参数
如果函数没有返回值,那么应该将其声明为void
如果函数没有参数,应该声明其参数为void
void修饰函数返回值和参数是为了表示“无”
#include <stdio.h>
f()
{
}
int main()
{
int i = f(1,2,3);
return 0;
}

不存在void变量

C语言没有定义void究竟是多大内存的别名,没有void的标尺
无法在内存中裁剪出void对应的变量
#include <stdio.h>
int main()
{
void var; //error
void array[5]; //error
void * pv;
return 0;
}

小贴士

ANSIC:标准C语言的规范
扩展C:在ANSIC的基础上进行了扩充
#include <stdio.h>
int main()
{
printf(“%d\n”, sizeof(void));
return 0;
}
上面的代码在ANSI C编译器中无法通过编译,但是对于支持GUN标准的gcc编译器而言是合法的。

void指针的意义

C语言规定只有相同类型的指针才可以相互赋值
void指针作为左值用于“接收”任意类型的指针
void
指针作为右值使用时需要进行强制类型转换

8-2通过void实现MemSet函数
小结:
现代软件工程中禁用goto语句
void是一种抽象的数据类型
void类型不能用于定义变量
void类型用于声明函数无参数
void类型用于声明函数无返回值
可以定义void
类型的指针
void*类型的指针可以接受任意类型的指针值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值