Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Kaz Kylheku <kaz@kylheku.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Is there any way to make a function local to two TUs without including it as static in both? |
| Date | 2015-03-25 17:46 +0000 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <20150325103719.927@kylheku.com> (permalink) |
| References | <5bnrfahtskm5osi399eb9954bleglspe2k@4ax.com> <mdlf9v$359$1@dont-email.me> <kfn4mpaf9ed.fsf@x-alumni2.alumni.caltech.edu> <descriptor-20150325004343@ram.dialup.fu-berlin.de> <kfnpp7xasva.fsf@x-alumni2.alumni.caltech.edu> |
On 2015-03-25, Tim Rentsch <txr@alumni.caltech.edu> wrote: > ram@zedat.fu-berlin.de (Stefan Ram) writes: > >> Tim Rentsch <txr@alumni.caltech.edu> writes: >>> In C functions don't have signatures, they have types. >> >> In C, a function type is characterized by its return >> type and the number and types of its parameters. >> >> The corresponding concept in Java is not >>signature<<, >> but >>descriptor<< (signature plus return type). > > Do you mean that Java calls a "descriptor" (in the case of > functions) what in C would be called a type? The word > "signature" does not have a language-independent meaning. > (The word "type" means pretty much the same thing in > most languages, I believe.) In some non-C languages, "signature" sometimes means some aspect of the type of the funtion that is less than the complete type---usually the type info of the argument list. (The word for the entire type is just "type"; it would be superfluous to use "signature" for this.) The signature concept matters in situations like overload selection, where argument types are considered, but not return value. Example: C++. We may not have this overload situation: double foo(int, int); int foo(int, int); Though the two declarations give different function types, the signatures of those two function types are the same. Why we may not have that overload situation is that overload resolution is a synthesized semantic attribute: that is to say, when a function call is resolved with regard to overloads, only its constituent expressions are considered, and not the surrounding expression context. So this doesn't resolve the situation: double x = foo(1, 2); // go to double(int, int)? Wishful thinking! int y = foo(3, 4); // ditto w.r.t. int(int, int). Only the contents of the foo(1, 2) expression are considered to come up with what is to be called, without regard to how the return type fits into the surrounding context. If that were considered, then the overload resolution would be a "synthesized semantic attribute" (one computed from parent and sibling nodes of the abstract syntax tree, not only bottom-up from the children).
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Is there any way to make a function local to two TUs without including it as static in both? DSF <notavalid@address.here> - 2015-03-09 15:02 -0400
Re: Is there any way to make a function local to two TUs without including it as static in both? James Kuyper <jameskuyper@verizon.net> - 2015-03-09 15:22 -0400
Re: Is there any way to make a function local to two TUs without including it as static in both? Richard Heathfield <rjh@cpax.org.uk> - 2015-03-09 19:34 +0000
Re: Is there any way to make a function local to two TUs without including it as static in both? Keith Thompson <kst-u@mib.org> - 2015-03-09 12:47 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Richard Heathfield <rjh@cpax.org.uk> - 2015-03-09 21:33 +0000
Re: Is there any way to make a function local to two TUs without including it as static in both? Keith Thompson <kst-u@mib.org> - 2015-03-10 07:28 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Richard Heathfield <rjh@cpax.org.uk> - 2015-03-10 14:59 +0000
Re: Is there any way to make a function local to two TUs without including it as static in both? Keith Thompson <kst-u@mib.org> - 2015-03-10 10:37 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Richard Heathfield <rjh@cpax.org.uk> - 2015-03-10 18:45 +0000
Re: Is there any way to make a function local to two TUs without including it as static in both? Lőrinczy Zsigmond <nospam@for.me> - 2015-03-09 21:04 +0100
Re: Is there any way to make a function local to two TUs without including it as static in both? August Karlstrom <fusionfile@gmail.com> - 2015-03-09 21:39 +0100
Re: Is there any way to make a function local to two TUs without including it as static in both? Kaz Kylheku <kaz@kylheku.com> - 2015-03-09 21:20 +0000
Re: Is there any way to make a function local to two TUs without including it as static in both? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-09 19:23 -0500
Re: Is there any way to make a function local to two TUs without including it as static in both? wssimms@gmail.com - 2015-03-09 21:42 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-10 04:52 -0500
Re: Is there any way to make a function local to two TUs without including it as static in both? Keith Thompson <kst-u@mib.org> - 2015-03-10 07:35 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-03-10 12:53 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Les Cargill <lcargill99@comcast.com> - 2015-03-09 19:58 -0500
Re: Is there any way to make a function local to two TUs without including it as static in both? Tim Rentsch <txr@alumni.caltech.edu> - 2015-03-24 13:06 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Les Cargill <lcargill99@comcast.com> - 2015-03-24 20:03 -0500
Re: Is there any way to make a function local to two TUs without including it as static in both? James Kuyper <jameskuyper@verizon.net> - 2015-03-25 10:26 -0400
Re: Is there any way to make a function local to two TUs without including it as static in both? Tim Rentsch <txr@alumni.caltech.edu> - 2015-03-25 10:36 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Kaz Kylheku <kaz@kylheku.com> - 2015-03-25 17:47 +0000
Re: Is there any way to make a function local to two TUs without including it as static in both? Tim Rentsch <txr@alumni.caltech.edu> - 2015-03-25 16:03 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Tim Rentsch <txr@alumni.caltech.edu> - 2015-03-25 10:28 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Kaz Kylheku <kaz@kylheku.com> - 2015-03-25 17:46 +0000
[OT] Re: meaning of "signature" in other languages Tim Rentsch <txr@alumni.caltech.edu> - 2015-03-25 16:01 -0700
Re: Is there any way to make a function local to two TUs without including it as static in both? Tim Rentsch <txr@alumni.caltech.edu> - 2015-03-28 09:05 -0700
csiph-web