Groups | Search | Server Info | Login | Register


Groups > comp.lang.c > #396228

Re: function pointer question

From Kaz Kylheku <046-301-5902@kylheku.com>
Newsgroups comp.lang.c
Subject Re: function pointer question
Date 2026-01-06 20:41 +0000
Organization A noiseless patient Spider
Message-ID <20260106123503.456@kylheku.com> (permalink)
References (1 earlier) <878qeguw0p.fsf@example.invalid> <10j8liu$fgsk$2@dont-email.me> <10j8r9n$ha1t$1@dont-email.me> <87ms2v8j4t.fsf@bsb.me.uk> <10jbdbd$1b3h1$1@dont-email.me>

Show all headers | View raw


On 2026-01-03, Andrey Tarasevich <noone@noone.net> wrote:
> On Fri 1/2/2026 7:33 PM, Ben Bacarisse wrote:
>> 
>> A pattern I've used more than once when setting up a table of function
>> pointers that act like op-codes.  Maybe you have an add function, a sub
>> function, a mul functions and a div function.  These are all defined in
>> a file arithmetic.c, but the table (maybe in another file) needs to see
>> declarations of the names:
>> 
>> typedef double operation(double, double);
>> /* ... */
>> 
>> extern operation add, sub, mul, div;
>> 
>> static struct {
>>      char *name;
>>      operation *function;
>> } ops[] = {
>>      { "add",      add },
>>      { "subtract", sub },
>>      { "multiply", mul },
>>      { "divide",   div }
>> };
>> 
>
> ... with a remark that `extern` is completely redundant here.
>
>    operation add, sub, mul, div;

Butlonly because operation is a function type, so the concept of
a tentative definition doesn't apply.

The lack of extern could trip someone up who refactors the
code such that the operations are object types:

  named_operation add, sub, mul, div; // oops, multiple definition

  static named_operation ops[] = { add, sub, mul, div };


-- 
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca

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


Thread

function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-02 07:24 +0000
  Re: function pointer question Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-01-02 09:04 +0000
    Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-02 14:42 +0000
    Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-02 14:45 +0000
  Re: function pointer question Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-01-02 02:52 -0800
    Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-02 14:43 +0000
      Re: function pointer question highcrew <high.crew3868@fastmail.com> - 2026-01-02 17:21 +0100
        Re: function pointer question Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-01-02 09:37 -0800
        Re: function pointer question Ben Bacarisse <ben@bsb.me.uk> - 2026-01-03 03:33 +0000
          Re: function pointer question Andrey Tarasevich <noone@noone.net> - 2026-01-03 07:41 -0800
            Re: function pointer question Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-01-03 21:46 +0000
              Re: function pointer question David Brown <david.brown@hesbynett.no> - 2026-01-04 12:03 +0100
            Re: function pointer question Kaz Kylheku <046-301-5902@kylheku.com> - 2026-01-06 20:41 +0000
              Re: function pointer question Andrey Tarasevich <noone@noone.net> - 2026-01-07 07:18 -0800
                Re: function pointer question Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-01-07 21:52 -0800
                Re: function pointer question David Brown <david.brown@hesbynett.no> - 2026-01-08 09:17 +0100
  Re: function pointer question Kaz Kylheku <046-301-5902@kylheku.com> - 2026-01-02 17:48 +0000
    Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-02 19:35 +0000
      Re: function pointer question Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-01-02 12:07 -0800
        Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-03 06:06 +0000
      Re: function pointer question Kaz Kylheku <046-301-5902@kylheku.com> - 2026-01-02 21:50 +0000
      Re: function pointer question Kaz Kylheku <046-301-5902@kylheku.com> - 2026-01-02 21:52 +0000
        Re: function pointer question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-01-02 14:18 -0800
          Re: function pointer question David Brown <david.brown@hesbynett.no> - 2026-01-03 13:55 +0100
            Re: function pointer question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-01-03 12:04 -0800
              Re: function pointer question Andrey Tarasevich <noone@noone.net> - 2026-01-03 13:01 -0800
                Re: function pointer question Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-01-07 07:35 -0800
                Re: function pointer question Andrey Tarasevich <noone@noone.net> - 2026-01-07 08:17 -0800
                Re: function pointer question Andrey Tarasevich <noone@noone.net> - 2026-01-07 08:23 -0800
                Re: function pointer question Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-01-07 18:44 -0800
                Re: function pointer question Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-01-07 18:27 -0800
              Re: function pointer question Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-01-03 22:05 +0000
            Re: function pointer question Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-01-03 16:39 -0800
              Re: function pointer question David Brown <david.brown@hesbynett.no> - 2026-01-04 12:15 +0100
            Re: function pointer question Kaz Kylheku <046-301-5902@kylheku.com> - 2026-01-06 20:33 +0000
              Re: function pointer question Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-01-06 17:01 -0800
        Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-03 06:08 +0000
          Re: function pointer question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-01-05 12:40 -0800
            Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-06 04:30 +0000
              Re: function pointer question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-01-06 17:05 -0800
      Re: function pointer question James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-01-03 17:20 -0500
        Re: function pointer question Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-01-03 16:48 -0800
        Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-05 08:39 +0000
          Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-06 12:32 +0000
            Re: function pointer question highcrew <high.crew3868@fastmail.com> - 2026-01-06 13:59 +0100
              Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-06 13:57 +0000
              Re: function pointer question antispam@fricas.org (Waldek Hebisch) - 2026-01-06 14:50 +0000
                Re: function pointer question highcrew <high.crew3868@fastmail.com> - 2026-01-06 21:44 +0100
                Re: function pointer question scott@slp53.sl.home (Scott Lurndal) - 2026-01-06 22:08 +0000
                Re: function pointer question Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-01-07 05:59 -0800
                Re: function pointer question antispam@fricas.org (Waldek Hebisch) - 2026-01-07 09:25 +0000
                Re: function pointer question David Brown <david.brown@hesbynett.no> - 2026-01-07 11:37 +0100
            Re: function pointer question Michael S <already5chosen@yahoo.com> - 2026-01-06 15:47 +0200
              Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-06 14:01 +0000
            Re: function pointer question David Brown <david.brown@hesbynett.no> - 2026-01-06 15:55 +0100
              Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-06 16:44 +0000
            Re: function pointer question scott@slp53.sl.home (Scott Lurndal) - 2026-01-06 15:41 +0000
              Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-06 16:45 +0000
            Re: function pointer question James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-01-06 10:58 -0500
              Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-06 16:49 +0000
                Re: function pointer question James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-01-06 12:09 -0500
                Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-07 21:18 +0000
              Re: function pointer question Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-01-09 09:14 -0800
              Re: function pointer question Andrey Tarasevich <noone@noone.net> - 2026-01-10 19:17 -0800
                Re: function pointer question "James Russell Kuyper Jr." <jameskuyper@alumni.caltech.edu> - 2026-01-10 22:39 -0500
                Re: function pointer question Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-01-11 11:49 -0800
        Re: function pointer question James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-01-05 06:47 -0500
  Re: function pointer question James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-01-02 14:03 -0500
    Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-02 19:41 +0000
  Re: function pointer question bart <bc@freeuk.com> - 2026-01-02 19:18 +0000
    Re: function pointer question Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-01-02 11:43 -0800
    Re: function pointer question Michael Sanders <porkchop@invalid.foo> - 2026-01-02 19:44 +0000

csiph-web