I came across an absurd article.
A well-written C program is a C++ program. Therefore, a well-written C program should be compilable with a C++ compiler.
This statement was undoubtedly true before 1999. Bjarne Stroustrup definitely took C compatibility into account when creating C++. At that time, well-written C code that adhered to the ANSI C standard was correctly compiled with a C++ compiler. However, that's limited to the time before the release of C99.
C99 introduced various new features, which C++ had already implemented differently or did not consider necessary. Moreover, the release of the new C11 standard and the new C++ standards(C++03, C++11, and more) have widened the gap between the two languages to a point where it is practically impossible to bridge.
Code that follows the C89 standard can still be compiled with a C++ compiler. But how many programs nowadays use C89? Try to find an actively developed project that uses C89. I have never tried to find one.
So, people who make such statements these days simply have not studied the topic properly. They might have learned it 20 years ago. When I told one such person that C++ and C specs have changed since C99 and that well-written C code that adheres to the C99 standard may not be compiled with a C++ compiler, the response I received was even more ridiculous.
The problem is not the standard; a well-written C program should be compilable with a C++ compiler. If the code cannot be compiled with a C++ compiler, it is not well-written C code.
Ah... it is truly shocking and absurd. He is misguided and overlooks the inherent differences between the two languages.
I cannot understand why one would look to C++ to define what well-written C code is. The two languages have already diverged. There was a time when Bjarne Stroustrup tried to merge C and C++, but he gave up on that idea. He even says that C/C++ is a term used by people who don't have a clue about programming. You should not use C/C++ to refer to C and C++, as they are no longer the same language. If you claim that only code that can be compiled with a C++ compiler is well-written C code, you are essentially giving up on all the features added to C since C99.
Let me clarify: well-written C code that adheres to the standard will not be compilable with a C++ compiler.
This article is a translation of a Korean post written in 2015. If you would like to view the original, please refer to this link.
Translating and revisiting it after 8 years, I feel a little better seeing that the term "C/C++" is used more infrequently than in the past since the establishment of modern C++.
Comments
Post a Comment