Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > comp.lang.c > #396238

Re: function pointer question

Path csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail
From Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups comp.lang.c
Subject Re: function pointer question
Date Tue, 06 Jan 2026 17:01:40 -0800
Organization None to speak of
Lines 36
Message-ID <87cy3m2q2z.fsf@example.invalid> (permalink)
References <10j7rs6$7c9e$1@dont-email.me> <20260102091518.226@kylheku.com> <10j96mn$jrsp$1@dont-email.me> <10j9enb$p6ts$2@dont-email.me> <10j9g71$pr9o$1@dont-email.me> <10jb3j5$17gcb$3@dont-email.me> <20260106123319.105@kylheku.com>
MIME-Version 1.0
Content-Type text/plain
Injection-Date Wed, 07 Jan 2026 01:01:41 +0000 (UTC)
Injection-Info dont-email.me; posting-host="6f871b5ffe12a84f74a2becf62529d59"; logging-data="288036"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/uNJ+knI7NuekewOPop1q2"
User-Agent Gnus/5.13 (Gnus v5.13)
Cancel-Lock sha1:xyoBytbFNMA6GufkPSunv/Px7bM= sha1:bG3cjDDyFHQtORJx169VQuIsjgI=
Xref csiph.com comp.lang.c:396238

Show key headers only | View raw


Kaz Kylheku <046-301-5902@kylheku.com> writes:
> On 2026-01-03, David Brown <david.brown@hesbynett.no> wrote:
[...]
>> Kaz mentioned several types that "void *" is a generic /object/ pointer. 
>>   Functions are not objects - pointers to functions are completely 
>> different from pointers to objects.  You can't mix them without "I know 
>> what I am doing" explicit casts, with non-portable behaviour and a 
>> serious risk of UB.
>
> "I know that I'm on POSIX" goes a long way also.

Sort of.

POSIX doesn't guarantee that all function pointers can be converted
to void* without loss of information.  It makes that guarantee only
for pointers returned by dlsym().

https://pubs.opengroup.org/onlinepubs/9799919799/functions/dlsym.html

On the other hand, I'd be surprised if there were any
POSIX-conforming implementation that don't make that guarantee for
all function pointers.  There are some tricks that could be played
to satisfy the dlsym() requirement even if function pointers are
bigger than void*, but I've never heard of an implementation that
did anything like that.

(For example, say the system has 64-bit function pointers and
32-bit void*.  The implementation could arrange for every function
referenced by dlsym() to have an address with its upper 32 bits set
to zero, perhaps by using small wrapper functions.  Other functions
might have arbitrary addresses so converting them to void* would
lose information.)

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

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