Deutsch English Français Italiano |
<va5b48$3v0je$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: =?UTF-8?Q?Arne_Vajh=C3=B8j?= <arne@vajhoej.dk> Newsgroups: comp.os.vms Subject: Re: New VSI post on Youtube Date: Wed, 21 Aug 2024 14:19:52 -0400 Organization: A noiseless patient Spider Lines: 69 Message-ID: <va5b48$3v0je$1@dont-email.me> References: <v9ehs5$3mqbj$1@dont-email.me> <v9idff$f9k4$1@dont-email.me> <v9iqln$hrs3$1@dont-email.me> <v9iro6$fql6$1@dont-email.me> <66bcf876$0$717$14726298@news.sunsite.dk> <66bcfbe3$0$717$14726298@news.sunsite.dk> <v9kske$uqhh$2@dont-email.me> <va04hl$2viks$2@dont-email.me> <66c397f6$0$716$14726298@news.sunsite.dk> <va226u$3ce14$1@dont-email.me> <va22l3$3cdrf$4@dont-email.me> <va26po$3d9f0$1@dont-email.me> <va3flv$3iue9$8@dont-email.me> <va4md4$3rubu$1@dont-email.me> <va5ao4$3v0jf$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 21 Aug 2024 20:19:52 +0200 (CEST) Injection-Info: dont-email.me; posting-host="3ba9841a42d1dda3811ea9704efa0629"; logging-data="4162158"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/TH7ejQyiSQXcp8TXw8mpmkxFWIAUx9SY=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:djzL2LscCVhrFrw9rVq+botrVuc= In-Reply-To: <va5ao4$3v0jf$1@dont-email.me> Content-Language: en-US Bytes: 2835 On 8/21/2024 2:13 PM, Arne Vajhøj wrote: > On 8/21/2024 8:26 AM, chrisq wrote: >> On 8/21/24 02:25, Lawrence D'Oliveiro wrote: >>> On Tue, 20 Aug 2024 09:47:36 -0400, Arne Vajhøj wrote: >>>> Few languages support multiple return values. >>> >>> Even in C and Fortran, a function can return a struct. >> >> Better to declare the struct externally, then pass a pointer >> to it. Much tidier. > > In C one should definitely return a pointer to struct and not > a struct. > > It looks like VSI Fortran cannot return a structure as function > result, but VSI Pascal can return a record as function result. > > And it is returned as a pointer argument under the hood. Unless it fits in a register, then it is returned as a true function result: $ type s2.pas module s2; type iituple = record a : integer; b : integer; end; [global] function get : iituple; var res : iituple; begin res.a := 123; res.b := 456; get := res; end; end. $ pas s2 $ type m2.c #include <stdio.h> struct iituple { int a; int b; }; struct iituple get(); int main() { struct iituple res = get(); printf("%d %d\n", res.a, res.b); return 0; } $ cc m2 $ link m2 + s2 $ run m2 123 456 Arne