Criticism of the C programming language: Difference between revisions

Content deleted Content added
Line 75:
===Internal Consistency===
Some features of C, its preprocessor, and/or implementation are inconsistently implemented. One of C's features is three distinct classes of non-wide string literals. One is for programs, one is for include files with quotation marks around the filename, and the third is for include filenames in right angle brackets. The allowed symbol set, and the interpretation of them, is not consistent between the three.
 
Another consistency problem stems from now-standardized shortcomings in C's preprocessor. The following code is legal C:
 
int sixteen = 0x3e-0x2e;
 
Unfortunately, an ANSI C preprocessor will reads "0x3e-0x2e" as a single "preprocessor number" token, and the compiler will not obtain the correct tokenization of
 
int sixteen = 0x3e - 0x2e ;
 
even though spaces around the minus sign are not required by the language.
 
===Standardization===