Criticism of the C programming language: Difference between revisions

Content deleted Content added
Line 119:
There are also compilers, libraries and [[operating system]] level mechanisms for performing array bounds checking, [[buffer overflow]] detection, and [[garbage collection (computer science)|automatic garbage collection]], that are not a standard part of C.
 
Many compilers, most notably [[Visual C++]] and [[Xcode]], deal with the long compilation times inflicted by [[header file]] inclusion using ''[[precompiled header]]s'', a system where declarations are stored in an intermediate format that is quick to parse. Building the precompiled header files in the first place is expensive, but this is generally done only for system header files, which are larger and more numerous than most application header files and also change much less often.
 
[[Cproto]] is a program that will read a C source file and output prototypes of all the functions within the source file. This program can be used in conjunction with the "make" command to create new files containing prototypes each time the source file has been changed. These prototype files can be included by the original source file (e.g., as "filename.p"), which reduces the problems of keeping function definitions and source files in agreement.