Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #120088

Re: Set the result of void function

Newsgroups comp.lang.c
Date 2017-09-20 01:50 -0700
References <fafcddea-dda4-4e4e-8475-496c0e4bfcf0@googlegroups.com> <105191a2-4d32-474b-9f58-d6ff0cbbbe72@googlegroups.com> <m2inge48kh.fsf@despina.home> <opsiel$oou$1@dont-email.me>
Message-ID <97f1f40a-e472-4be1-b836-cbdcd7167d7a@googlegroups.com> (permalink)
Subject Re: Set the result of void function
From fir <profesor.fir@gmail.com>

Show all headers | View raw


W dniu środa, 20 września 2017 04:06:32 UTC+2 użytkownik James Kuyper napisał:
> On 09/19/2017 06:39 PM, Pascal J. Bourguignon wrote:
> ...
> > In C, functions can only return a simple value; granted, some extension
> > or perhaps in later standards, you can return a structure too,
> 
> Every version of the C standard, all the way back to C89, has allowed
> returning a single (aggregate) value of struct type. Any compiler that
> doesn't support that is nearly three decades out-of-date.

note btw that efficiency of returning values shouldnt in fact be worse than those of passing ones (i mean 
returning 5 ints sjould equal to passing 5 ints)

in pure stack way i think it can be done like this

i1, i2, i3 = foo(i4, i5, i6, i7);

push i3
push i2
push i1
push i7
push i6
push i5
push i4
call foo
add esp, 16


it is also compatible with variadic input

push i3
push i2
push i1
push n bytes of whatever you wnat
call foo
add esp, n

it is also compatible in sorta-variadic output
i mean such kind of variadic output when caller
decides how many bytes get back 

i1 = foo(frmt);
i1,i2 = foo(frmt);
i1,i2,i3 = foo(frmt);

(i probably would like to get such variadic output in  C2

probably it could be usefull as one function would be used as a 'stream' that can give various kind of data)

if calle would like to decide it would need to use reserve or additional stack or memory region 

( this caller-decide variadic output maybe can be considered a bit more sane BTW as calle-decide variadic outpud would need something like va_start va_arg etc to read output from such function ;c 
(i would dio it by hand btw 
- some things still to consider here)

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-19 14:23 -0700
  Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-19 14:38 -0700
    Re: Set the result of void function gordonb.tfand@burditt.org (Gordon Burditt) - 2017-09-19 17:16 -0500
    Re: Set the result of void function "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-09-20 00:39 +0200
      Re: Set the result of void function James Kuyper <jameskuyper@verizon.net> - 2017-09-19 22:06 -0400
        Re: Set the result of void function "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-09-20 06:51 +0200
          Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-20 10:55 +0100
            Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-20 12:11 +0100
            Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 07:17 -0700
          Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-20 11:28 +0100
          Re: Set the result of void function mark.bluemel@gmail.com - 2017-09-20 03:30 -0700
            Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 06:53 -0700
              Re: Set the result of void function Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-09-21 03:50 -0500
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-21 11:00 +0100
                Re: Set the result of void function scott@slp53.sl.home (Scott Lurndal) - 2017-09-21 12:39 +0000
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-21 14:12 +0100
                Re: Set the result of void function scott@slp53.sl.home (Scott Lurndal) - 2017-09-21 13:51 +0000
                Re: Set the result of void function Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-09-21 08:36 -0600
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-21 17:51 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-21 10:06 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 08:51 +0200
                Plunging innocent people into poverty (Was: Set the result of void function) gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-23 09:31 +0000
                Re: Plunging innocent people into poverty (Was: Set the result of void function) David Brown <david.brown@hesbynett.no> - 2017-09-23 12:09 +0200
                Re: Plunging innocent people into poverty (Was: Set the result of void function) gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-23 10:25 +0000
                Re: Plunging innocent people into poverty Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-09-23 10:43 -0600
                Re: Plunging innocent people into poverty supercat@casperkitty.com - 2017-09-23 10:41 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 09:37 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-22 11:27 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 14:42 +0200
                Re: Set the result of void function Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-09-24 12:09 +0000
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 08:31 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 03:52 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 13:25 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 04:58 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 14:20 +0200
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 13:44 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 15:09 +0200
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 05:44 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 05:58 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 15:15 +0200
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 06:46 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 16:01 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 07:18 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 07:55 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 08:49 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 09:21 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-25 09:51 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 21:57 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 15:03 -0700
                Re: Set the result of void function Öö Tiib <ootiib@hot.ee> - 2017-09-25 21:34 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-26 04:28 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-27 08:26 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-27 11:48 -0400
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 08:54 +0200
                Re: Set the result of void function gordonb.iddsu@burditt.org (Gordon Burditt) - 2017-09-28 23:33 -0500
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 09:15 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 17:50 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 10:35 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-27 18:47 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-27 10:52 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 11:10 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:10 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 11:06 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 20:01 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 12:26 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 20:38 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 13:00 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 21:54 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-27 14:12 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 14:34 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 23:16 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 16:09 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 01:12 +0100
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 02:03 +0100
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-28 17:31 +1300
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:55 +0200
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-28 21:00 +1300
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 10:48 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 13:20 +0200
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 11:29 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 20:27 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:30 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-29 19:45 +0100
                Re: Set the result of void function Jerry Stuckle <jstucklex@attglobal.net> - 2017-09-29 14:49 -0400
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 15:07 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:42 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 13:55 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 17:22 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:14 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 20:13 +0200
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:42 +0100
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-28 09:14 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:25 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 20:17 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 17:39 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 10:10 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 19:05 +0100
                Re: Set the result of void function "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2017-09-28 14:20 -0400
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-29 07:52 +1300
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 11:59 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 18:50 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 19:47 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 21:57 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 16:14 -0400
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 13:17 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 21:23 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 13:55 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:50 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 13:57 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 23:18 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 17:38 -0400
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 15:54 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-29 08:59 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:43 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-29 10:43 +0200
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-29 07:43 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-30 19:21 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-30 19:45 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 13:31 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 13:41 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:07 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 16:25 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 18:45 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 19:54 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 20:51 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 22:39 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 09:16 -0700
                Re: Set the result of void function gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-29 16:17 +0000
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 11:05 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 11:23 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-29 12:15 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:04 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 16:44 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-30 10:04 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-30 10:33 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 11:26 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:03 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 09:44 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 11:15 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 11:35 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:11 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:14 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-30 08:55 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 11:36 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-29 12:05 +0100
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-29 12:17 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 09:15 -0700
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-29 09:42 +1300
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 21:55 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:12 -0700
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 17:22 -0400
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:50 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:00 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 09:35 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 10:57 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 10:35 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 06:57 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 16:32 +0100
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 08:43 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 22:12 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 09:03 -0700
                Re: Set the result of void function Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-09-25 14:17 +0000
          Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-20 11:32 -0400
        Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 01:50 -0700
          Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-20 15:56 -0700
  Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-19 23:01 +0100
    Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-20 15:40 +0200
      Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-20 08:50 -0700
        Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-20 22:52 +0200
          Re: Set the result of void function supercat@casperkitty.com - 2017-09-20 15:04 -0700
    Re: Set the result of void function supercat@casperkitty.com - 2017-09-20 07:39 -0700
  Re: Set the result of void function jameskuyper@verizon.net - 2017-09-19 15:18 -0700
    Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-20 01:21 +0100
      Re: Set the result of void function jameskuyper@verizon.net - 2017-09-19 19:40 -0700
  Re: Set the result of void function rockbrentwood@gmail.com - 2017-09-19 16:36 -0700
    Re: Set the result of void function James Kuyper <jameskuyper@verizon.net> - 2017-09-19 22:13 -0400
    Re: Set the result of void function gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-22 01:48 +0000
  Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-19 19:36 -0700
  Re: Set the result of void function mark.bluemel@gmail.com - 2017-09-20 01:00 -0700
    Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 02:01 -0700
  Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-20 08:36 -0700
  Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-20 11:36 -0400
  Re: Set the result of void function John Bode <jfbode1029@gmail.com> - 2017-09-20 15:30 -0700

csiph-web