|
On Tue, 15 Jan 2002, Simon Coulter wrote:
> >This is the "dynamic array" issue. As I've said before, handling
> >undetermined quantities of data is probably better handled in the
> >database, and not within program code.
>
> Ahh, but you might not writing a database program. In my case I need this
> sort of dynamic array support when I can not afford the cost of the I/O.
> It is much quicker to scan main storage than DASD and a based array is
> faster than any sort of messing with SETOBJACC. Who among you uses based
> arrays, dynamic storage, qsort() and bsearch()? They certainly don't
> feature in all my programs but sometimes they are a godsend and we
> couldn't do it without pointers.
Good points. I'll add that often I need to store some data in an
array-type structure but I don't know how many elements I need. So
compile time array is out. Use a file you say? Ick. My data may only be
a very few variables. I don't want to create a file - even a temporary
file - just as a workspace. It is too much work. Externally described or
program described? In QTEMP or elsewhere? What about creating/deleting
the file? F specs and I specs? Overrides? What about adding a variable
or changing variables easily? Files are too much work. Use files for
*storing* data, not as a work space. With typedef and pointers I can do:
structure = malloc ((sizeof(structure_type) * number_of_elements))
Only one line of code to get what I need. And this is useful in RPG
application programming, not just system programming. I think this is
basically what subfiles do, and we use those all the time.
> >Function pointers are a different issue from the current
> >discussion that involves basing pointers. If you're looking
> >at a lot of "call-back" functions in your application, you
> >probably should be using an object-oriented language instead.
>
> Yes, but since true OO requires a significant investment on the part of
> the programmer, callbacks are a useful mechanism to "embrace and extend".
> They are also language independent which OO is most certainly not. Again
> they are not commonly required but very useful none-the-less. Who among
> you have implemented callbacks for some of your procedures? Who among you
> have written the callbacks required by qsort() and bsearch()?
I have only used callbacks in event-driven programming like GTK or Motif
(with a possible exception or two - don't really remember). Event-driven
programming is loosely modelled at our shop by doing stuff like:
C 1 doweq 1
C exfmt screen
C select
C *inkc wheneq *on
C eval err = exit_function(args)
C *inkl wheneq *on
C eval err = cancel_function(args)
C etc...
C enddo
which doesn't really require call back functions. I'm interested to know
what uses you have used callbacks in? What exactly was the scenario?
> Much of this falls into the serious pointyhead programmer arena but it
> would be interesting to know how many of us:
>
> a) Understand and use this stuff when required
> b) Have heard of it and would like to try it out
> c) Have heard of it and wouldn't go anywhere near it
> d) Have no idea what I'm talking about :)
I guess depending on who you ask I could fall into any of these :)
James Rich
james@eaerich.com
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.