社区
C语言
帖子详情
void 与 return 的矛盾(thinking in C++)
yumengshuyuan
2001-03-08 08:55:00
我在学习《C++编程思想》(thinking in C++)时经常发现有下段例子,
void* fetch(stash*s,int index){
if(index>=s->next||index<0)
return 0;
return &(s->storage[index*s->size]);}
问题是void 不是已规定不让代回任何值,
可为何还用return 返回函数地址?
...全文
275
10
打赏
收藏
void 与 return 的矛盾(thinking in C++)
我在学习《C++编程思想》(thinking in C++)时经常发现有下段例子, void* fetch(stash*s,int index){ if(index>=s->next||indexstorage[index*s->size]);} 问题是void 不是已规定不让代回任何值, 可为何还用return 返回函数地址?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yumengshuyuan
2001-03-09
打赏
举报
回复
我懂了,
谢了。
upyu
2001-03-08
打赏
举报
回复
这里我看过,我们不知道指针*stroage所指直的类型,所以用void表示,即void这里不表示不返回值,表示不确定的指针。"if(index>=s->next||index<0)return 0;"表示索引index不再数组范围内。&(s->storage[index*s->size])是取第index*s->size得值得地址。我可能说的不清楚,书上讲的很详细。
holyfire
2001-03-08
打赏
举报
回复
返回的是void型的指针,指针的内容是0或者s->storage[index*s->size]
函数的意思是可以通过内容是否为0来判断有无结果。
holyfire
2001-03-08
打赏
举报
回复
返回的是void型的指针,指针的内容是0或者s->storage[index*s->size]
函数的意思是可以通过内容是否为0来判断有无结果。
xuii
2001-03-08
打赏
举报
回复
return 返回的值如果是int那么放在ax 或者Eax 如果是结构那么eax放的是指向这个结构的指针!
所以ruturn语句和void实际上并不矛盾!
建议你使用汇编级的调试工具跟踪一次!就知道了!
yumengshuyuan
2001-03-08
打赏
举报
回复
易水,
我如何给你加分呀?
我是说过程,
我刚来不知怎样给别人加分,
点击哪个键?
yumengshuyuan
2001-03-08
打赏
举报
回复
那此处返回的是什么呢?
Areslee
2001-03-08
打赏
举报
回复
该函数的返回值是一个无类型的指针!
void*表示一个无类型指针 void 才是无返回值
tinydrop
2001-03-08
打赏
举报
回复
这里void *可以看成一种基本数据类型,就像(int *)、(float *)等.但c/c++中不把它们说成是基本类型.
这里顺便说一下,对于返回void的函数也不是说函数没有返回值,只是这里的返回值不能由你指定,而由系统提供。如果你是用windows可以用GetExitCodeProcess或GetExitCodeThread函数获得返回值(一般情况时,当函数正常对出返回值是0,而其他情况是非0)。
luodi
2001-03-08
打赏
举报
回复
建议你去看一下标准C运行库中 malloc的输出定义! 返回值为 void *其实表明的是你可以将它cast成任何你想要的指计类型!void 确实是无返回的意思,但void*恰恰表明任何指计类型的意思!你说的书我没看过,你应该可以从书中的上下文中猜测它想要的结果是用来case(造型)成什么。
C++
面向对象编程(OOP)学习资料.md
- **资源链接**:[《Thin
king
in
C++
》](#) #### 示例代码分析 下面是一个简单的示例代码,演示了如何在
C++
中定义一个类、初始化对象并调用成员函数: ```cpp #include #include class Person { public: // ...
C++
面试题以及答案
- [Bruce Eckel, Thin
king
in
C++
](https://www.manning.com/books/thin
king
-in-cpp) - [Steve Maguire, Writing Clean Code](https://www.microsoftpressstore.com/store/writing-clean-code-9780735617688) - ...
Using LUA with Visual
C++
(Introduction)
Using LUA in your program does require some thin
king
ahead... You have to choose what kind of functions you allow in the scripts. For example: a function savegame would be logic and usefull and so ...
二十三种设计模式【PDF版】
使用类再生的两个方式:组合(new)和继承(extends),这个已经在 thin
king
in java中提到过. 设计模式之 Proxy(代理) 以 Jive 为例,剖析代理模式在用户级别授权机制上的应用 设计模式之 Facade(门面?) 可扩展的使用...
深入理解
C++
:《Thin
king
in
C++
》实践教程
简介:《Thin
king
in
C++
》是Bruce Eckel的经典
C++
编程教程,分为两卷,覆盖了
C++
的基础语法和高级主题,如模板和设计模式。本书强调面向对象编程核心概念,通过实例详细讲解构造函数、析构函数、虚函数、内存管理...
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章