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.
Design more grammar words. In reality, C has a wide library door, and the problem solved is extremely wide, and the library is lightweight to heavyweight.
Both. Many thinking of people who are open to the eyes, or they are angry. Since the number of libraries is very large, it is limited to the author
Horizontal, 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 tossing with the C standard for many years until the standard introduction is
Model, but it is very gratified in the implementation of the standard library, and has been proven to have an industrial level strength.
excellent work.
1, Dinkumware C Library
Reference site: http://www.dinkumware.com/p.j. High quality standard library written by Plauger. P. J. Dr. Plauger is the winner of the DR. Dobb's program design outstanding award. Adopy
The written library was used by Microsoft, and recently Borland also obtained its OEM's license, which used in its C / C products.
Dinkumware's library.
2, RogueWave Standard C Library
Reference site:
Http://www.roguewave.com This library has been used in the earlier versions of Borland C Builder, later being 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/sgi STL library cross-platform portable version.
Quasi-standard library - Boost
Boost library is a C library that passes through thousands of hammer, portable, providing source code, as a standard library, is a C standardization process
One of the engines. Boost library initiated by the C Standard Board Working Group, there is very much influence in the C community, and its members have nearly 2,000 people.
. 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. Chinese version of the pen in "Dr."
Dobb's Journal Software Development Magazine 7th Reeds.
BOOST is generally a high value of high quality and high quality. And due to its emphasis on cross-platform, the standard C is emphasized
Write platforms unrelated, modern C developers must have tools. 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 constructs have different techniques, do not ritosis.
Time-spent time study. Boost is another side, such as the library such as Graph is industrial strength, good structure, very worthy of study
Boutique code, and you can safely use a lot of use in 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 selected GUI libraries, their own characteristics and support of related tools.
1, MFC
The famous Microsoft Basic Class Book (Microsoft Foundation Class). People who learn VC should know this library. although
However, from the technical point of view, the MFC is not very beautiful, but it is built on the Windows API, which enables programmers to work easier,
High efficiency, reduce the code that must be written when establishing a Windows program, and it also provides all general C programming
Advantages, such as inheritance and packaging. The program written by the MFC is portable on the various versions of the Windows operating system, for example,
The code written under Windows 3.1 can be easily ported to Windows NT or Windows 95. But in recent development and
The official support will be subtracted.
2, Qt
Reference website: http://www.trolltech.comQt is a multi-platform C graphical user interface application framework for Trolltech. It provides application developers to build art
The functions required for the graded graphical user interface. QT is a full-faced object that is easy to expand and allows you to make a true component programming. since
Earlier in 1996, QT entered the business sector, which has become the basis of thousands of successful applications worldwide. QT is also flow
The basis of the 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, there is article transcatal transfiguration from MFC to WXWindows to achieve cross-platform
Features. Through years of development is also a growing GUI library, supporting the same not weaker than two libraries. And is completely open source
Codes. The new C Builder X GUI designer is based on this library.
4, FOX
Open source of GUI library. From the experience of his person's personal development, the author has an ideal GUI library to feel the feeling.
Thus, it began development of this library. Interested can try it.
Reference website: http://www.fox-toolkit.org/
5, WTL
A library based on ATL. Because using a large amount of ATL's lightweight method, template and other technologies, doing code size, and speed optimization
It is very in place. 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. ACE self-adaptive communication environment (Adaptive Communication
Environment is an object-oriented framework that can be freely used, open source code, which implements many of the communication software for concurrent communication software.
Core mode. ACE provides a rich set of rich C packaging appearances and framework components that can across multiple platforms
Complete universal communication software tasks, including: event multi-channel separation and event processor assignment, signal processing, service initialization, 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 easier, not the synchronous housing
Bread the essence of asynchronous.
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 in document type
Document Type Definition, DTDs have good support and add support W3C XML in December 2001.
The basic complete open standard of Schema.
XMLBOOSTER
Reference Website: http://www.xmlbooster.com/ This library has greatly improved the speed of XML parsing by generating a special Parser, and can generate corresponding GUI programs 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 PARSER of the PULL method. There is a Pull Parser at the bottom of each SAX, this XPP
This layer is exposed to you directly. 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 finding outside the DOM and SAX.
Seeking a bit inspiration.
LIBXML
http://libxmlplusplus.sourceforge.net/
LIBXML is a scientific calculation of C packaging version of the famous libXML XML parser
BLITZ
Reference website: http://www.oonumerics.org/blitzblitz is a high-efficiency numerical calculation function library, its design purpose is to create a set of convenient as C , at the same time
A faster than the Fortran speed computing environment. Usually, the numerical program written by C is more than 20% slower than Fortran, so
BLITZ is to change this shortcomings. 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
The functions provided by BLITZ can be easily utilized.
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 procedures
Order development, optimized parallel machines to achieve the highest efficiency, facilitate 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, providing a large number of linear algebraes of various format matrices.
Function. In some applications, in the case of using a high-performance compiler, such as the compiler of Intel, it can be seen from the generated assembly code.
There is almost no pattern with handwriting.
Cgal
Reference website: www.cgal.org
The purpose of Computational Geometry Algorithms Library is to put most important solutions in calculating geometries and
Methods are provided to users of the industry and academia 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 use
Python is 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
Applications or games based on 3D hardware devices can be developed more conveniently and directly. The class library in the engine is a more underlying system library (such as:
All DIRECT3D and OpenGLs are abstracted and provide 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 ring
State 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. CTTL SUBSTRING class can be used to compare, insert, replace, and syntax with EBNF
Elignment.
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 I / O system, I / O system, based on the type and thread secure
The plugin's network protocol transparent I / O architecture, the plug-in application message log frame, access the class of the SQL database, 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, waste) in Java or .NET.
Set, I / O, Network, Utility, XML, etc.), as well as Java, Perl, Python, TCL, LISP, COM, and CORBA
integrated.
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 may complain that I have introduced it together, and a library of experimental nature. The author plays the function of the C template in LOKI.
The ultimate. And try to provide something similar to the idea of similar design patterns through the library. It also provides a smart pointer to compare
Practical features.
ATL
ATL (Active Template Library) is a set of small, efficient, flexible classes that provide interoperable COM components
Basic facilities.
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 be outside OOP
Looking for another pleasure, you can look at the world of functional programming. Master Peter Norvig in "Teach YourSelf
The functional language is listed in the document of the functional language as one of the 6-class programming languages that should be learned.
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 pair
In the introduction of these recent libraries, it is not a matter of every we have used it, so it is inevitable that readers will see
Forgive.
Resource website
As we can understand the development of computer history through computer history, the website of C related figures can make us
To the most valuable reference and reference, the following people we think that there is not introduced, just because the following characters are in the field of C fields.
As is well known, we only carry out the relevant resources for readers to learn, they have worked in Bell Lab, some work in well-known
Translator manufacturers, some are constantly promoting the standardization of language, some have written a lot of thousands of indiscons ...
Bjarne stroustrup http://www.research.att.com/'>http://www.research.att.com/~bS/
Stanley B. Lippman
http://blogs.msdn.com/slippman/ (Chinese version
http://www.zengyihome.net '> http://www.zengyihome.net/slippman/index.htm'> http://www.zengyi
HOME.NET '> http://www.zengyihome.net/slippman/index.htm)
Scott meyers http://www.aristeia.com/http://www.aristeia.com/
David musser http://www.c '> http://www.c'> http://www.cs.rpi.edu/~musser/
Bruce eckel http://www.bruceeckel.com '> http://www.bruceeckel.com
Nicolai M. Josuttis http://www.josuttis.com/http://www.josuttis.com/herb sutter http://www.gotw.ca/http://www.gotw.ca/
Andrei alexandrescu
Http://www.moderncppdesign.com/'http://www.moderncppdesign.com/'Http://www.moderncppdesi
gn.com/http://www.moderncppdesign.com/