Descriptions of two syntaxes for calling functions by using pointers (32109)
The information in this article applies to:
- Microsoft Visual C++ 1.0
- Microsoft Visual C++ 1.5
- Microsoft Visual C++ 2.0
- Microsoft Visual C++ 4.0
- Microsoft Visual C++, 32-bit Enterprise Edition 5.0
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0
- Microsoft Visual C++, 32-bit Professional Edition 5.0
- Microsoft Visual C++, 32-bit Professional Edition 6.0
- Microsoft Visual C++, 32-bit Learning Edition 6.0
- Microsoft Visual C++ .NET (2002)
- Microsoft Visual C++ .NET (2003)
- Microsoft Visual C++ 2005 Express Edition
This article was previously published under Q32109 Note Microsoft Visual C++ .NET 2002 and Microsoft Visual C++ .NET 2003
support both the managed code model that is provided by the Microsoft .NET
Framework and the unmanaged native Microsoft Windows code model. The
information in this article applies only to unmanaged Visual C++
code. Microsoft Visual C++ 2005
supports both the managed code model that is provided by the Microsoft .NET
Framework and the unmanaged native Microsoft Windows code model. SUMMARY The source code below contains what appears to be an
improper use of a pointer to a function. However, the code is correct. There
are two ways to call a function when using a pointer to a function:
(*pointer_to_function)();
pointer_to_function();
The behavior exhibited in the sample code is expected. The ANSI
Standard (Document Number X3J11/88-002, January 11, 1988) allows a function to
be called through a pointer with the following syntax
(*pointer_to_function)();
in addition to the following nontraditional syntax:
pointer_to_function();
The text below is quoted from page 41 of the "Rationale for Draft
Proposed American National Standard for Information Systems Programming
Language C" (sec. 3.3.2.2, "Function calls"):
The latter construct, not sanctioned in the Base Document, appears
in some present versions of C, is unambiguous, invalidates no old
code, and can be an important shorthand.
Modification Type: | Minor | Last Reviewed: | 4/24/2006 |
---|
Keywords: | kbinfo kbLangC KB32109 kbAudDeveloper |
---|
|