Incomplete guidance of C ++ resources

xiaoxiao2021-03-06  22

Written / Zeng Yi Tao Wen

Last updated: June 12, 2004

statement:

This article was first in "9CBS Development Master" 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 with the author of C language.

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 packaged book (not for: one is limited by the level, the second helpless C is profound), the only one we think we think is to learn C readers Say 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). 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..

Library

In C , the position of the library is very high. Mr. Bjarne Stroustrup, the father of C , has repeatedly expressed the design library to expand the function of designing more grammar. In reality, C library doors are also extremely widely solved, and the library has a lightweight to heavyweight. Many thinking of people who are open to the eyes, or they are angry. Since the number of libraries is very large, they are limited to the level of the author, many of which don't know. So some libraries mentioned in the article are more famous large libraries.

Standard library

The standard library provides basic facilities for C programs. Although the C standard library has been tossing with C standards until the standard introduction is formally fixed, it is very gratifying in the realization of the standard library, and has been proved to have an industrial level strength. Good job.

1, Dinkumware C Library

Reference site: http://www.dinkumware.com/

P.j. High quality standard library prepared by Plauger. P. J. Dr. Plauger is the winner of the DR. Dobb's program design outstanding award. The library prepared by Microsoft has been used by Microsoft, and recently Borland has also obtained its OEM's license, which uses Dinkumware libraries in its C / C products.

2, RogueWave Standard C Library

Reference site: http://www.roguewave.com/

This library has been used in the early versions of Borland C Builder, which later replaced by other libraries. The author is not recommended.

3, SGI STL

Reference site: http://www.roguewave.com/

SGI's C standard template library.

4, Stlport

Reference site: http://www.stlport.org/

Cross-platform portable version of the SGI STL library.

Quasi-standard library - Boost

The BOOST library is a C library that has passed thousands of hammer, portable, providing source code, as a standard library, is one of the engines of the C standardization process. Boost libraries are launched by members of the C Standards Committee Working Group, which has greatly affected in the C community, and its members have nearly 2,000. The Boost library has brought us the latest, coolest, most practical technology, which is a "quasi" standard library. There are more famous libraries in Boost:

Regex Regular Expression Library

Spiritll Parser Framework, direct expression of EBNF with C code

GRAPH diagram assembly and algorithm

Lambda defines a short anonymous function object in the call, which is very practical functions.

Concept Check Checking Concept in generic programming

Metal programming framework for MPL implementation

Thread portable C multi-thread library

Python maps C classes and functions into Python

Pool Memory Pool Management

Smart_ptr5 intelligent pointer, learning intelligent pointer must read, a good reference is from Cuj's article:

SMART Pointers in boost, oh, this article can be found, CUJ is available online. The Chinese version of the pen is translated in the "DR. Dobb's Journal Software R & D Journal".

BOOST is generally a high value of high quality and high quality. And due to its emphasis on cross-platform, the standard C emphasizes the preparation of the platform-independent, modern C developers must. But there are many things in Boost to experimental nature, and practical use in actual development needs to be cautious. And many Boost's library functions are expanded to language functions, and their constructive use of the unacceptable technique, do not rash the time to study. Boost is another side, such as a library such as Graph is a boutique code with good industrial strength, very structural, very worthy of study, and can be safe in the product code.

Reference site: http://www.boost.org (Domestic mirror: http://www.c-view.org/tech/lib/boost/index.htm)

GUI

In many C libraries, the library of the GUI part is more prosperous, and it is more compelling. In actual development, the Choice of the GUI library is also a very important thing. Let's review the optional GUI libraries, their own characteristics and support for related tools.

1, MFC

The famous Microsoft Basic Class Book (Microsoft Foundation Class). People who learn VC should know this library. Although the MFC is not very beautiful from the technical point of view, it is built on the Windows API, which enables programmers to work more easily, high programming efficiency, reduces the code that must be written when establishing a Windows program, at the same time All general C programming advantages, such as inheritance and packaging. The program written by the MFC is portable on each version of the Windows operating system, for example, code written under Windows 3.1 can be easily ported to Windows NT or Windows 95. But in recent development and official support.

2, Qt

Reference website: http://www.trolltech.com/

Qt is a multi-platform C graphical user interface application framework for Trolltech. It provides the application developer to establish the functionality required to establish an art graphical user interface. QT is a full-faced object that is easy to expand and allows you to make a true component programming. Earlies earlier in 1996, QT entered the business sector, which has become the basis for thousands of successful applications worldwide. QT is also the foundation of the popular Linux desktop environment KDE, and it also supports Windows, Macintosh, UNIX / X11 and other platforms. 3, wxwindows

Reference website: http://www.wxwindows.org/

Cross the platform GUI library. Because of its level hierarchical imaging, there is a paper introducing code transplants from MFC to WXWindows to achieve cross-platform functions. Through years of development is also a growing GUI library, supporting the same not weaker than two libraries. And it is completely open source. The new C Builder X GUI designer is based on this library.

4, FOX

Open source of GUI library. From the experience of their personally developed an ideal GUI library, the author should look forward to the feeling, and start the development of this library. Interested can try it.

Reference website: http://www.fox-toolkit.org/

5, WTL

A library based on ATL. Because of the use of a large amount of ATL's lightweight technique, template and other technologies, in terms of code size, and speed optimization. The main use group is a developer of visualization controls for developing COM lightweight.

6, gtk

Reference website: http://gtkmm.sourceforge.net/

GTK is a big name Ding Ding's open source Gui library. In the world of Linux, there is a killer application like gnome. GTK is the C package version of this library.

Telecommunication

ACE

Reference website: http://www.cs.wustl.edu/~schmidt/ace.html

Representatives of C libraries, overweight network communication development frameworks. The ADAPTIVE COMMUNICATION Environment is an object-oriented framework that is free to use, open source, in which many core modes for concurrent communication software are implemented. ACE provides a set of rich Wrapper Facade and framework components that complete universal communication software tasks across a variety of platforms, including: event multiplexing and event processor assignment, signal processing, service Initialization, inter-process communication, shared memory management, message routing, distributed service dynamics (heavy) configuration, concurrent execution, synchronization, and so on.

Streammodule

Reference website: http://www.omnifarious.org/strmod/

Designed to simplify libraries to write distributed programs. Trying to make the program to process asynchronous behavior more easily, not the essence of asynchronous enclosures with synchronous housings.

SIMPLESOCKET

Reference website: http://home.hetnet.nl/~lcbokkers/simsock.htm

This class library makes it easier to write Socket-based client / server programs.

A Stream Socket API for C

Reference website: http://www.pcs.cnu.edu/~dgame/sockets/socketsc /sockets.html

Another package library for Socket.

Xml

XERCES

Reference website: http://xml.apache.org/xerces-c/

Xerces-C is a very robust XML parser that provides verification, as well as SAX and DOM APIs. XML verification has good support in document type definition (DTD), and in December 2001, the basic complete open standards supporting W3C XML Schema are added. XMLBOOSTER

Reference website: http://www.xmlbooster.com/

This library greatly increases the speed of XML parsing by generating a special Parser, and can generate the corresponding GUI program to modify this Parser. Another possible solution is provided outside the DOM and SAX mainstream XML parsing methods.

PULL PARSER

Reference website: http://www.extreme.indiana.edu/xgws/xsoap/xpp/

This library uses the Pull method. There is a Pull Parser under each SAX's Parser, which uses this layer to expose this layer directly to everyone. It is worth trying to try it with your speed.

Xalan

Reference website: http://xml.apache.org/xalan-c/

Xalan is an XSLT processor for converting XML documents to HTML, plain text, or other XML type documents.

CMarkup

Reference website: http://www.firstObject.com/xml.htm

This is an XML parser using EDOM. It is very flexible on many ideas. It is worth seeing to seek a little inspiration outside the DOM and SAX.

LIBXML

http://libxmlplusplus.sourceforge.net/

LIBXML is a C package version of the famous libXML XML parser

Scientific Computing

BLITZ

Reference website: http://www.oonumerics.org/blitz/

Blitz is a high-efficiency numerical calculation function library, its design purpose is to create a set of elements as C , while faster than Fortran speeds. Typically, the numeric program written by C is more than 20% slower than Fortran, so Blitz is to change this shortcoming. The method is to use C Template technology, program execution can even be faster than Fortran. BLITZ is still in development. For common linear algebraic methods such as common SVD, FFTS, QMRES, but users can easily build the functions provided by BLITZ .

Pooma

Reference website: http://www.coDesourcery.com/pooma/pooma

Pooma is a free high-performance C library for processing parallel scientific calculations. Pooma's object-oriented design is convenient for fast program development, optimizing parallel machines to achieve the highest efficiency, facilitates use in industrial and research environments.

MTL

Reference website: http://www.osl.iu.edu/research/mtl/

Matrix Template Library (MTL) is a high-performance generic component library that provides a large number of linear algebraic features of various format matrices. In some applications, the compiler of the INTEL is used in some applications, as can be seen from the generated assembly code, it can be seen from the handwriting with almost no difference.

Cgal

Reference website: www.cgal.org

The purpose of Computational Geometry Algorithms Library is to provide users with most important solutions and methods in calculating geometries to industry and academic users in the form of C libraries. game development

AUDIO / Video 3D C Programming Library

Reference website: http://www.galacticasoftware.com/products/av/

AV3D is a cross-platform, high-performance C library. The main characteristics are to provide 3D graphics, sound support (SB, and S3M), control interface (keyboard, mouse, and remote sensing), XMS.

Klayge

Reference website: http://home.g365.net/EngineDev/

Domestic game development masters have a game engine developed by C . KLayGE is an open source, cross-platform game engine, and uses Python as a scripting language. Klayge is issued under the LGPL protocol. Thanks to Mr. Gong Minmin to contribute to the Chinese game development cause.

OGRE

Reference website: http://www.ogre3d.org

OGRE (object-oriented graphics rendering engine) is developed with C , using flexible object-oriented 3D engines. Its purpose is to let developers can develop applications or games based on 3D hardware devices more easily and directly. The class library in the engine has abstracted all the use details of the lower system library (such as Direct3D and OpenGL) and provides interfaces and other classes based on real world objects.

Thread

C threads

Reference website: http: //threads.sourceforge.net/

The goal of this library is to provide programmers with easy-to-use classes, which are inherited to provide a large number of threads in the Linux environment.

ZTHREADS

Reference website: http://zthread.sourceforge.net/

An advanced object-oriented, cross-platform C thread and synchronization library.

Serialization

S11n

Reference website: http://s11n.net/

A STL-based C library for serializing POD, STL containers, and user-defined types.

SIMPLE XML PERSISITENCE LIBRARY

Reference website: http://sxp.sourceforge.net/

This is a lightweight C library that transfers the object sequence into XML.

String

C Str Library

Reference website: http://www.utilitycode.com/str/

Operating strings and characters, supporting Windows and supporting GCC multi-platform. Provide highly optimized code and support multi-threaded environment and Unicode, as well as regular expressions.

CommON text Transformation Library

Reference website: http://cttl.sourceforge.net/

This is a library that parses and modifies the STL string. The CTTL Substring class can be used to compare, insert, replace, and analyze the syntax of EBNF.

Greta

Reference website: http://research.microsoft.com/projects/greta/

This is a library that is developed by researchers in Microsoft Research Institutes. There is a very good manifestation in the case of small matches.

Integrate

P :: Classes

Reference website: http://pclasses.com/

A highly portable C application framework. The current attention type and thread secure Signal / Slot mechanism, I / O system includes a plug-in-based network protocol transparent I / O architecture, a plug-in application message log frame, access the SQL database class, and more. ACDK - ArtefakTur Component Development Kit

Reference website: http://acdk.sourceforge.net/

This is a platform-independent C component framework, similar to the frame (reflection mechanism, thread, unicode, scrap collection, I / O, network, utility, XML, etc.), and Java, Perl Integration of Python, TCL, LISP, COM, and CORBA.

DLIB C Library

Reference website: http://www.cis.ohio-state.edu/ ~kingd/dlib/

A synthesis of a variety of classes. Big integer, Socket, thread, GUI, container, and browse directory API, etc.

Chilkat C Libraries

Reference website: http://www.chilkatsoft.com/cpp_libraries.asp

This is a library that provides ZIP, E-mail, encoding, S / MIME, XML, etc.

C Portable Types Library (PTYPES)

Reference website: http://www.melikyan.com/ptypes/

This is a relatively simple alternative to STL, as well as portable multi-threaded and network libraries.

LFC

Reference website: http://lfc.sourceforge.net/

Oh, this is another C library attempted to provide everything.

Other library

Loki

Reference website: http://www.moderncppdesign.com/

Oh, you might complain that I have introduced it with Boost, a library of an experimental nature. The author has played the function of the C template in LOKI. And try to provide something similar to the idea of ​​similar design patterns through the library. It also provides a more practical function such as a smart pointer.

ATL

ATL (Active Template Library) is a set of small, efficient, flexible classes that provide basic facilities for creating interoperable COM components.

FC : The Functional C Library

This library offers some elements in a functional language. A representative of the library is expanded. If you want to find another point outside OOP, you can go to see the world of functional programming. Master Peter Norvig is one of the 6-class programming languages ​​that should at least learn in the "Teach YourSelf Programming In Ten Years" article.

Fact!

Reference website: http://www.kfa-juelich.de/zam/FACT/Start/index.html

Another library that implements functional language characteristics

Crypto

Provide free libraries for processing password, message verification, single-way HASH, azoonoon encryption system.

There are also many very exciting or extremely practical C libraries, limited to our level, and articles of the article cannot be included. In the introduction of these already recent libraries, it is inevitably to be biased because it is not every we have used.

books

In the past, Mr. Xiong Festival wrote a comment relative to the Java programming language, and the C has a good book. Mr. Glory wrote in "Programmer" magazine "C programming five books" will also have a comprehensive introduction of almost all classic books in the field, any comment on the book, it seems to be a lot. Personally see, unless you intend to use C as the only interest or survival, the general reader does not have enough time and need to read more than 20 books. More reference value is another article of Mr. Glory: "Nine C Works should be read at least", you can browse from the following address: http://www.roylealoo.com/articles/articles_2003/9cppbooks .htm

The following few books on the road of C beginners are our most willing to recommend it to everyone:

"C Primer"

Oh, maybe you will complain why we don't introduce TCPL first, but for the entrances you walk in the way of learning, this book is more comprehensive, more and more detailed, we call it "C Super Collection" is not too . It is equipped with a good exercise solution "C Primer Answer Book" can assist your learning path.

"Essential C "

If "C Primer" is a super collection of C fields, then this book is a big deserved view of the overall situation of C . As the book ".NET Great View" allows the reader to cover .NET, this book tells the most core all themes in C . Although the book is not thick, the content is refined, the subject matter of "C Primer" readers after the meal.

"THE C Programming Language"

Bjarne has brought the C tutorial, really tells you how to use the true C of C . Although the books such as "a programming language" will give you a content, it is not suitable for beginners, but the book is really less suitable for beginners. If you think it is a very experienced C programmer, then at least repeatedly chews a number of content emphasized by Mr. Bjarne.

"Effective C ", "More Effective C "

Yes, as some C enthusiasts often read or read the above two works to distinguish whether you are C masters. We also strongly recommend these two books. In various books in various introductions C expert experience, these two are the closest language nature, and they can have a book that will be replaced by the bones. You need to be born every day.

Technical books are benevolent, too many comments have no significant meaning, and readers prefer to choose the book for yourself as the best.

Resource website

As we can understand the development of computer history through computer history, the website of C -related figures can also make us get the most valuable reference and reference, the following people we think that there is no introduction, only because of the following characters The status of the C field is well known. We only carry out relevant resources for readers to learn, they work in Bell Lab, some work in well-known compiler manufacturers, some are constantly promoting the standardization of language, some for readers Write a number of thousands of people ...

Bjarne stroustrup http://www.research.att.com/~bs/

Stanley B. Lippman

http://blogs.msdn.com/slippman/

http://www.zengyihome.net/slippman/index.htm)

Scott meyers http://www.aristeia.com/david musser http://www.cs.rpi.edu/~musser/

Bruce eckel http://www.bruceeckel.com

Nicolai M. Josuttis http://www.josuttis.com/

Herb Sutter http://www.gotw.ca/

Andrei alexandrescu http://www.moderncppdesign.com/

Mr. Houjie http://www.jjhu.com

Mr. Mengyan is busy, obsessed with technology, no personal homepage, and the work of Mr., can be accessed through the 9CBS column and Hou's homepage.

Mr. Glory http://www.royaloo.com/

Mr. Pan Aimin http://www.icst.pku.edu.cn/panaimin/pam_homepage.htm

In addition to the homepage of the above master, the following comprehensive class C learning reference sites is that we are very willing to recommend them:

CodeProject http://www.codeproject.com

CodeGuru http://www.codeguru.com

Dr. Dobb's journal http://www.ddj.com

C / C Users journal http://www.cuj.com

CV at http://www.c-view.org

Allaboutprogram http://www.allaboutprogram.com

other information

ISO IEC JTC1 / SC22 / WG21 - C : Authority Reference for Standard C

http://anubis.dkuug.dk/jtc1/sc22/wg21/

C FAQ Lite - FREQUENTLY Asked Questions: Most Comprehensive C FAQ

http://www.sunistudio.com/cppfaq/index.html

C / C News Group:

You may wish to ask questions from here and answer questions, a lot of good Q & A resources ...

This is simple, if you are a rookie like me like me.

.comp.lang.c . moderated, this obvious level is high

.comp.std.c If you need to discuss standard C related topics

Have to write end language

At the end, it is also a summary status and look forward to the future. Although C starts from a rebatula to C, all the way is hard to come, but in any way, the status of the industrial basis has been obtained. A large number of related resources listed in the article is the best proof, while the industry's large number of product codes written in C and a large number of C professional engineers are the most direct proof. At the same time, we can see that there is a C program in various colleges and universities, and the learning discussion of C has never stopped on the Internet. However, under the besieging of the two major business development platforms of Java and .Net, it is increasingly "no".

C in the development of the company's software development, there are many ways to develop convenience than Java and C #, one of the problems is complicated in the C language itself, the learning curve is steep, and another problem is C standardization time too long. Lost a lot of growth, spending a lot of effort to fight between vendors, and C standard library is still lacking too much about too much content, each third party library and framework It is not possible to compare with the framework provided by consistency and integrity. Is C really want to withdraw from the historical stage? From C 's current activity, and the application status is completely affirm that C is still the foundation of the software industry, and it will not withdraw from the historical stage. From Boost, Loki, we can also see that C is very active, which is very radical for new technologies, and C is still widely received. From the application of ACE in high performance communication, the library of MTL is in the field of numerical calculations, we can see an irreplaceable role of C in high-performance applications, and memory restrictions such as embedded systems Platform, such as Symbian OS, C has played and will play a greater role. It is foreseeable that the subsequent software is from the application of the upper layer, and its undercurrent core is written by system-level software such as C / C , such as Java Virtual Machine, .NET FRAMWORK. Because there is only such system-level software to exert the function of the machine.

It is necessary to see two trends, a trend is C more complex, more academic, through template, etc. The more and more delicate libraries become a modern C hotspot, although in the use library to achieve new The programming paradigm, and even the design model, etc., it has also been aware of some tools that can be easily developed, but more is to make C more powerful, more complicated, and more difficult, it seems to be more college I have to say that it is developing marginalized roads. Another trend is that C has gradually exited in mainstream enterprise application development. The enterprise software development such as ERP will not consider C , unless you need to consider integration of legacy code. C is resolved to the system level language, which has become the foundation of the software industry is the general trend. However, reflecting, is it really defried? Since STL appeared, countless people started to support C , they used "I saw late night disappeared, the target software project appeared. I saw the maintenance code." Yes, STL is doing maintainability Such excellent. But what? STL is a road to modern software engineering, and this site is not alone in C in the field application software development field, and many programming languages ​​do very well, and crazy supporters will not hesitate to say we. C should be supported because it is the best language in the world. And frankly, your waist is really hard? Maybe just escape some facts. C is excellent, this is undeniable that STL's emergence makes C once joined the most brilliant moment, but now it seems ... I am once said that people who really approve the STL application very conservatively There is no more than 200 people in China, and may not join STL to make C to develop better in the direction of it should develop, and now, C should also look back to the holy place that really belongs to him ...

The following resources are referred to in the text:

1. "Programmer" in February 2004, March, "C programming four books" glory

2, Shuimu Tsinghua BBS C Essence

3, http://jjjou.9cbs.net

4, http://www.roylealoo.com

5, http://www.zengyihome.net

6, C / C Developer: Enrich your XML toolbox

Http://www-900.ibm.com/developerWorks/cn/xml/x-ctlbx/index.shtml

转载请注明原文地址:https://www.9cbs.com/read-43217.html

New Post(0)