首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回数组与返回int64_t (C/C++)

返回数组与返回int64_t (C/C++)
EN

Stack Overflow用户
提问于 2012-12-26 03:36:08
回答 3查看 290关注 0票数 0

我一次又一次地读到不能从函数返回数组(在C/C++中),但是如果是这样的话,如何从函数返回int64_t呢?int64_t不只是一个long int数组吗

(是的,我知道您可以返回指向数组开头的指针,但我说的是返回int[4],而不是int*。)

EN

回答 3

Stack Overflow用户

发布于 2012-12-26 03:37:27

int64_t不就是一个长整型数组吗?

不,int64_t是标量类型的别名(与数组类型等聚合类型相对),通常是long long类型的别名。

当然,当int64_t被定义为精确宽度的整数类型在C中是可选的时,这也适用。

票数 1
EN

Stack Overflow用户

发布于 2012-12-26 03:40:13

实际上,您可以返回任何不是数组的类型-例如,如果希望返回四个int值,则可以返回一个struct my_4ints { int x[4] };

但是int64_t (在32位机器上)是一个“项目”。在x86上,它恰好作为两个寄存器值返回,通常是eax、edx。但这仍然会返回一个值。

票数 0
EN

Stack Overflow用户

发布于 2012-12-26 03:41:06

如果将数组包装在结构中,则可以从函数返回它。但要避免这种情况,因为ABI在这类事情上并不完全稳定(例如:在Solaris上用gcc 3.3编译的对象链接到用Solaris上的gcc 3.4编译的对象是不兼容的,在这种情况下可能会崩溃)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14033465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档