There are some syntactical structures that are valid for both C and C++ but different behavior when compiled and run in the both languages.
Several differences can also be exploited to create code that compile in both languages but behave differently. For example, the following function will return different values in C and C++:
Example Codes valid in both C and C++ but give different answers when compiled :
Code in C++
We can see that both the codes are same but outputs are different. This is due to C requiring struct in front of structure tags (and so sizeof(S) refers to the variable), but C++ allowing it to be omitted (and so sizeof(S) refers to the implicit typedef).
Please note that the outcome is different when the extern declaration is placed inside the function: then the presence of an identifier with same name in the function scope inhibits the implicit typedef to take effect for C++, and the outcome for C and C++ would be the same. Observe also that the ambiguity in the example above is due to the use of the parenthesis with the sizeof operator.
Using sizeof T would expect T to be an expression and not a type, and thus the example would not give same result with C++.
Related Article :
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Check if the game is valid or not
- What are valid values for the id attribute in HTML?
- Check if the given permutation is a valid DFS of graph
- Check if any valid sequence is divisible by M
- Which characters are valid in CSS class names/selectors?
- What happen when we exceed valid range of built-in data types in C++?
- Self Destructing Code in C
- Code Golfing in Python
- Code Bloating in C++ with Examples
- Writing OS Independent Code in C/C++
- Three address code in Compiler
- C# | How to get hash code for the specified key of a Hashtable
- Code introspection in Python
- How to write a Pseudo Code?
- Dynamically generating a QR code using PHP
- Basic Code Optimizations in C
- Cracking Google Summer of Code 101
- HTML | Computer Code Elements
- How to send HTTP response code in PHP?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : ankit15697