Written / Zeng Yi Tao Wen
Last updated: June 11, 2004
Disclaimer: This article was first in the "9CBS development masters" in May 2004, copyright belongs to the magazine and "programmer" magazine. The magazine is limited to the contents of the section, and this version is a relatively complete version. This article is an introductory article, which will continue to update the C language with the author.
Foreword
I heard "I want to learn C !" In countless times, I heard "C too complicated, I really don't learn". Mr. Stan Lippman has pointed out that "C is one of the most difficult" Senior Programming languages "in the" C Primer "book, and people often go to express their awe of C . It is true that the C programming language is indeed a lot of difficultfront gaps in the learner. The system is huge, and it should be neglected and expanded. In addition, the more than the less interstitation of its learners, desire to be in depth Persevers are suffering. I hope this incomplete guidance can be a lead light on your C learning.
The original intention of writing this article is not intended to lead everyone to experience an old C history. If you want to know the history of C and its previous development, you should refer to Bjarne's "The Design and Evolution Of C ". Of course, I don't want to give everyone a balanced book (not want: one is limited by the level, the second helpless C is profound), the only some of us we believe that I want to learn C readers The most important and tentacle development and learning resources.
This article introduces and analyzes some compilers, development environments, libraries, and a small amount of books and reference websites, and try to give a guide to use these resources, and hope to benefit to the same beginners like us.
translater
In any language other than C , the compiler has never received so much attention. Because C is a quite complex language, the compiler is also difficult to build. Until recently we can only use the compiler of the C standard (Oh, you might blame the compilers that comply with standard compilers as soon as possible, this can only blame their respective one of themselves. Wishing the standard). what? Do you say this? Oh, no, what you need is compiled with standardized C highly compatible. In the long run, only such a compiler is the most meaningful tool for C developers, especially for the learner of the programming language. One to sexual allows the code to be portable and make a language and its library applications more extensive. Well, yes, we only intend to introduce some recognized excellent compilers.
Borland C
This is the background compiler of Borland C Builder and Borland C Builder X. (Oh, I will be able to understand why, as Delphi7 to Delphi8 transformation is a revolutionary two generations.) Borland C is created by the old development tool manufacturer Borland. The company's compiler is fast, and the space efficiency is highly called, the Borland C series compiler adheres to this tradition, which belongs to a very high quality compiler. Standardization is 8.2.73% of the standardized C in the compiler of standardization. At present, the latest version is a version 6.0 version in Borland C Builder X. The official is 100% compliant with ANSI / ISO's C standards and C99 standards. Um ... this is the "fully compliant C standard compiler" earlier. Visual C
This is the C compiler we are well known to Visual Studio and Visual Studio.net 2002, 2003, and 2005 Whidbey. Developed by Microsoft. In Visual Studio 6.0, because there are too many places that have too many places that cannot appear in conjunction with the C standards (thinking about compiles when using STL, those disgusting Error and Warning). VC 6.0 is only 83.43% of the standardized C . However, with the C compiler design master Stanley Lippman and many C community Daren, in Visual Studio.Net 2003, the Visual C compiler has become a very mature and reliable C compiler. Dr.Dobb's Journals show that Visual C 7.1 is as high as 98.22% of standard C , once the best compatible compatibility before CBX. Combining a powerful Visual Studio.NET development environment is a very good choice. As for the Visual C of the Whidbey era, it seems that Microsoft is most concerned about C / CLI ... we don't want to comment on Microsoft's next-generation C compiler how standardization is compatible, but he is really suitable for .NET (in fact you and my feelings It may be the same, Microsoft should not throw the standard C this fat to Borland, but Microsoft may not think so).
GNU C
Famous open source C compiler. It is the first choice for writing C programs under UNIX operating systems. Features is very good portability, you can use it on a very wide platform, and it is also a good choice to write cross-platform, embedded programs. In addition, it has always been very good in accordance with this aspect of the standard, and GCC3.3 is probably 96.15%. However, due to its cross-platform characteristics, it is slightly different from the size of the code size.
There are many compilers based on GNU C , such as:
l mingw: http://www.mingw.org/
GCC's portfront (DEV-C background)
l cygwin: http://sources.redhat.com/cygwin/
Another Windows transplant version of GCC is part of Cygwin, Cygwin is a UNIX simulation environment under Windows. Strictly said that the environment of simulating GNU, this is the meaning of "GNU's Not Unix" to express, hey, this is not the substantive content we care about here. l DJGPP: http://www.delorie.com/djgpp/
This is the DOS transplant version of GCC.
l rsxnt: http://www.mathematik.uni-bielefeld.de/~rainer/
This is the GCC's DOS and Windows transplant versions.
INTEL C
Famous CPU Manufacturers Intel Compiler, Special Design for Intel X86! For the CPU of the Intel X86 structure through special optimization. In some applications, high-performance applications such as numerical calculations, only use Intel's compiler compilation to greatly improve performance.
DIGITAL MARS C
Free download, Zortech / Symantec C successor, is also one of the protagonists in the fierce C four countries in the year.
Development environment
The development environment is self-evident for programmers. It is not easy to choose the environment where you have peaceful, especially in the case of Ide. Here is some of the common C development environments we recommend, and there is no small, rare IDE. Any of these is rich and can be used as daily development. For developers of different levels, see the description of the applicable object.
Visual Studio 6.0
Although this is the old version of Microsoft's old version, it is recommended that this development environment gives C beginners in view of the huge body of Visual Studio.net, and beginners are not so high. The most basic part of C , such as the part of C, of course, don't expect him to support the latest C99 standard. In daily development, there are still many companies that use this classic and stable environment. For example, the author will see that some companies have replaced their compilers to GCC to do mobile phone development.
Visual Studio.net 2003
As the latest version of the latest version of the officially released by Microsoft, there are too many exciting functions. Combine its latest C compiler. For developers with machine configuration, this development environment will be able to meet most of their requirements. Here is not intended to say Visual Studio whidbey alone, although Visual Studio .Net 2005 - Whidbey Community Preview has been launched, it is not very stable, readers can experience themselves.
Borland C Builder 6
This is not the latest version of Borland's C development environment. The reason for choosing it is that it is not written with Java, the speed is faster. It has a very perfect GUI form designer, and Delphi shares a VCL. Because of these features, it is more suitable for beginners to get started. However, due to the central position of its GUI, it may be not conducive to learning of C languages. Moreover, in order to support the VCL this Object Pascal written, C has passed some private expansion. There is a fact that people have to accept: "The master of Borland C Builder 6 is almost Delphi master."
Borland C Builder X
As mentioned above, although the version number and the previous IDE are very optical, they are actually a completely different two integrated development environments. C Builder is a development environment that is synchronized with Delphi synchronization, C Builderx is a feature-rich IDE that thinks from C 's perspective. The biggest feature is the integration of cross-platform, cross-block, multiple Framework, and there is a WXWindows-based GUI designer. Especially using pure C to override the entire Framework, abandoned the previously helpless version. For C development, it is ideal from compiler, to the library, to functional integration. It is foreseeable that Borland C Builder X 2.0 is worth a C enthusiast expectation. The only embarrassment is a development tool for C , and its IDE is written with Java, please carefully consider the installation in a machine that is not ideal enough. Emacs GCC
Most of the foregoing is an integrated development environment in the Windows environment. Developers on Linux more preferred to use Emacs to edit C files, with makefile to command GCC to compile. Although it looks relatively loose, these things are integrated or an open 0 environment. If you can use such ambient writing programs, your level should guide us to write this 文.
DEV C
GCC is a good compiler. When the C compiler on Windows has a distance from the standard, GCC is a compiler that makes the developer's drafted water under WINDOWS. DEV-C is the tool that enables GCC under Windows. As an integrated development environment, it also provides grammar that is comparable to professional IDE, code prompt, debugging and other functions. Due to the use of delphi development, the memory is less memory, the speed is very fast, and it is more suitable for lightweight learning and use.
Eclipse CDT
Eclipse has recently been famous for its famous development tools. The latest Jolt Grand Prize will give this outstanding god. Say that it is magical because it is written in Java, but has much speed than the general Java written. Moreover, because of the principle of plug-in assembly, a plug-in such a CDT becomes Eclipse into a C / C development environment. If you have always written Java programs with Eclipse, use it to experience the fun of C development.
tool
C auxiliary tools, our division can be introduced for everyone:
Document class
Doxygen
Reference site: http://www.doxygen.org
Doxygen is a command-based document generator suitable for C-style languages, such as C , C, IDL, Java, including C # and PHPs.
C 2html
Reference site: http://www.bedaux.net/cpp2html/
Turn C code into syntax highlight HTML
Codecolorizer
Reference site: http://www.chami.com/colorizer/
It can put the source code of several languages to HTML
DOC-O-Matic
Reference site: http://www.doc-o-matic.com/
Doc-o_matic produces an accurate document for your C / C , C . Net, Delphi / Pascal, VB.NET, C #, and Java programs or components. DOC-O-Matic uses symbols and comments in the source code and the external document files creates documents with popular document style. Docvizor
Reference site: http://www.ucancode.net/products/docbuilder/features.htm
Docvizor meets the basic requirements for object-oriented software developers - it allows us to see class hierarchies in C projects. Docvizor quickly generates a complete class hierarchical diagram, including those from third-party libraries, except that Docvizor can generate HTML files from class information.
SourcePublisher C
Reference site: http://www.scitools.com/sourcepublisher_c.html
Give the source code to provide fast intuitive HTML reports, including code, class hierarchy, call, and called trees, including and contain trees. Supports a variety of operating systems.
Understand
Reference site: http://www.scitools.com/ucpp.html
Analyze any C or C projects to help us better understand and write documents.
Code class
CC-RIDER
Reference site: http://www.cc-rider.com
CC-RIDER is a powerful code visual tool for C / C programs that promote the maintenance and development of procedures by interactive browsing, editing, and automatic files.
Codeinspect
Reference site: http://www.yokasoft.com/
A new C / C code analysis tool. It checks our source code to find non-standard, possible, and ordinary error code.
Codewizard
Reference site: http://www.parasoft.com
Advanced C / C source code analysis tools, using more than 500 coding specification automation, but the compiler cannot check the code structure.
C Validation Test Suites
Reference site: http://www.plumhall.com/suites.html
A set of code libraries for test compilers and libraries for standard anastomosis.
CPPRefactory
Reference site: http://cpptool.sourceforge.net/
CPPRefactory is a program that enables developers to reconstruct their C code. The purpose is to make the reconstruction of C code to be effective and simple as possible.
LZZ
Reference site: http://www.lazycplusplus.com/
LZZ is an automated Many C programming tools. It saves us many events and makes coding more fun. Give a series of statements, LZZ will create header files and source files to us.
QA C generation 2000
Reference site: http://www.programmingResearch.com/solutions/qacpp.htm
It focuses on object-oriented C source code, which is a warning message for some of the design, efficiency, reliability, and maintainability.
S-Mail Project - Java To C DOL
Reference site: http://sadlocha.strefa.pl/s-mail/ja2dol.html
Translate the Java source code to the corresponding C source code command line tool.
Snip from Cleanscape Software International Reference site: http://www.cleanscape.net/stdprod/snip/index.html
A volatile C development tool that fills the coding and design, saves a lot of editing and debugging events, which also enables developers to specify design patterns as an object model, automatically generate C classes from the object model.
SourceStyler C
Reference site: http://www.ochresoftware.com/
Provide complete formatting and typographic control of C / C source code. Provide more than 75 formatting options and fully support ANSI C .
Compile class
CompilerCache
Reference site: http://www.erikyyy.de/compilercache/
CompilerCache is a package script for your C and C compiler. Each time we compile, package scripts, put the results of the compilation into the cache, once compiled the same thing, the result will be removed from the cache instead of compiling again.
Ccache
Reference site: http://ccache.samba.org/
CCache is a compiler cache. It uses like a C / C compiler's cache pre-processor, compilation speed usually improves 5 to 10 times the normal compilation process.
CMM (C with MultiMetHods)
Reference site: http://www.op59.net/cmm/cmm-0.28/Users.html
This is an extension of a C language. After reading the source code of the CMM source code, the function is to add support for MultimumThod to the C language.
The Frost Project
Reference site: http://frost.flewid.de/
Forst allows you to use MultimumThod and virtual function parameters like native C features in the C program. It is a compiler's housing.
Test and debug class
CPPUnit
CPPUnit is a LGPL-based open source project, the initial version transplantation from JUnit, is a very excellent open source test framework. CPPUnit and JUnit are the main ideas comes from extreme programming. The main function is to manage unit tests and automate tests.
C test
Reference site: http://www.paasoft.com/
C Test is a unit test tool that automates the test of C and C classes, functions, or components.
Cantata
Reference site: http://www.iplbath.com/products/tools/pt400.shtml
The purpose of the design is to meet the use of this tool under reasonable economic overhead to make the development engineer to carry out unit testing and integration testing.
Purify
Reference site: http://www-900.ibm.com/cn/software/rational/products/purifyplus/index.shtml
IBM Rational PurifyPlus is a complete runtime analysis tool designed to improve applications reliability and performance. PURIFYPLUS combines memory errors and leak detection, application performance description, code override analysis, and other functions in a single, complete toolkit.
Boundschecker
Boundschecker is a C runtime error detection and debugging tool. It accelerates the development and shortening the listing cycle by automated debugging process within Visual Studio. Boundschecker provides a clear, detailed program error analysis, many of which are unique to C and detect and diagnose errors in Static, Stack, and Heap memory, and discovering leaks for memory and resource. INSURE
Reference site: http://www.paasoft.com/
An automated runtime program test tool, check that it is difficult to spot, such as memory coverage, memory leak, memory allocation error, variable initialization error, variable definition conflict, pointer error, library error, logic error, and algorithm error.
Glowcode
Reference site: http://www.glowcode.com/
GlowCode includes memory leak check, code profiler, function call tracking and other functions. Provide a complete error diagnosis for C developers, and runtime performance analysis kits.
Stack Spy
Reference site: http://www.imperioustech.com/
It captures the errors for Stack Corruption, Stack Over Run, Stack overflow, etc..