Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Those are function pointers. Your parent was referring to the function type. Per ISO/IEC 9899:TC3:

A function type describes a function with specified return type. A function type is characterized by its return type and the number and types of its parameters. A function type is said to be derived from its return type, and if its return type is T , the function type is sometimes called ‘‘function returning T’’. The construction of a function type from a return type is called ‘‘function type derivation’’.





Not necessarily, foo can also just be an ordinary function. That was my point.

> Per ISO/IEC 9899:TC3:

What is it supposed to tell me?


ISO/IEC 9899 is the name of the ISO document describing the C programming language. The current edition is, I think the 2023 document aka C23.

You can read a "draft" of that document here: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf

[If you've ever been under the impression that "real" people use the actual ISO text, disabuse yourself of that notion, ISO takes ages to turn the same exact words into an official branded document, then charges $$$ for a PDF, ain't nobody got time or money for that]

I can't tell you what they intended by TC3. It might be a typo or it might be some way to refer to a specific draft or a section within that draft. I doubt this particular section changes frequently so I wouldn't worry about it.


Thanks, I did know that. My question was what kind of claim that quote is supposed to support, not where the quote is from.

Technical Corrigendum 3. It was an amendment to the '99 standard that contains a few important clarifications.

OK? But like, why a version of C99? So neither C89, which I could understand as this idea that it has "always" been that way, but also not C23, which is the current standard.

It sounds like this text is essentially the same in C23, maybe moved around a bit.


> But like, why a version of C99?

Would also be my default goto version. Reasonable old to be supported everywhere, some quality of live improvements like initialization syntax, without all the modern fluff.


Something something, get off my lawn kids ? /shakes fist impotently

C99 added a few convenience features over C89, in particular the ability to declare variables everywhere in a function, so it is (or was) a common target.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: