- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C/C++ Function Call Puzzle?
This C/C++ function call puzzle is a puzzle that is intended to explore more about the behaviour of method calling in both the programming languages C and C++/.
The output of a method in C and C++ is different. Lets see what is the difference in calling methods in C and C++.
Let’s take an example and check the output of the below code in c and c++.
Example
void method() { // Print statement } int main() { method(); method(2); }
Output
For C++ −
Error : too many arguments to function ‘void method()’
For C −
Program runs without any error.
Logic behind the output and error
The compilers for C++ programming language treats the function method() as a function without any parameter whereas the same function in the C compiler works quite efficiently as the compiler treats the function method() as a function that can accept variable argument.
Due to this i C++ when we pass arguments to a method that has no parameters in its definition there will be an error prompt in the output window say ‘error: too many arguments to function ‘void func()’.
And in C, the passed arguments are accepted and the code inside the function is executed.