Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8155823
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T16:46:36+00:00 2026-06-06T16:46:36+00:00

Considering this code with 3 differents function call semantics: void f(void){ puts(OK); } int

  • 0

Considering this code with 3 differents function call semantics:

void f(void){
   puts("OK");
}

int main(void){
   f();
  (*f)();
  (&f)();

  return 0;
}

The first is the standard way to call f,

the second is the semantic for dereferencing function pointers,

but in the third I’m applying the & operator to the function name and it seems to work fine.

What does in the second and third case happen?

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-06T16:46:37+00:00Added an answer on June 6, 2026 at 4:46 pm

    Function calls are always performed via function pointers. From C99 section 6.5.2.2:

    The expression that denotes the called function shall have type pointer to function.

    However, in almost all cases a function type decays to a function-pointer type. From C99 section 6.3.2.1:

    Except when it is the
    operand of the sizeof operator or the unary & operator, a function designator with
    type “function returning type” is converted to an expression that has type “pointer to
    function returning type“.

    So your three calls are evaluated thus:

    (&f)();
    (&(*(&f)))();
    (&f)();
    

    All are valid. But obviously, the first one (f()) is the cleanest and easiest to read.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

considering this example: public static void main(final String[] args) { final List<String> myList =
Considering this basic code snippet: <? class mcClassington { var $mcProperty='default'; function mcDoSomething() {
Considering this code : interface IRepository<T> { void Save(); } class Repository<T> { public
Considering this article Developing a MVC component for Joomla , following is the code
I apologize if this code looks a bit like a mess (considering the length);
Considering this class Class 1 class myclass { public static function myfunction($condition, $string) {
Considering this part of a Java class, private List<Object> components = new ArrayList<Object>(); private
Considering this xml document: DECLARE @X XML (DOCUMENT search.SearchParameters) = '<parameters xmlns=http://www.educations.com/Search/Parameters.xsd xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance> <parameter
Considering this question of SO, where whole C# in-memory compiler is being called. When
I'm considering using this jquery utility as a possible solution, but I want to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.