background preloader

C

Facebook Twitter

Xml

Threads. Perftools - Google Code. These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-threaded applications in C++ with templates. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler. Recent news: 19 Apr 2014 gperftools 2.2rc is out! Here are notable changes since 2.1: a number of fixes for a number compilers and platforms. The following people helped with ideas or patches (based on git log, some contributions purely in bugtracker might be missing): Andrew C. 30 July 2013 gperftools 2.1 is out! Just few fixes where merged after rc. Some fixes for debug allocation on POWER/Linux 20 July 2013. Customizing Printf - The GNU C Library.

12.13 Customizing printf The GNU C Library lets you define your own custom conversion specifiers for printf template strings, to teach printf clever ways to print the important data structures of your program.

Customizing Printf - The GNU C Library

The way you do this is by registering the conversion with the function register_printf_function; see Registering New Conversions. One of the arguments you pass to this function is a pointer to a handler function that produces the actual output; see Defining the Output Handler, for information on how to write this function. You can also install a function that just returns information about the number and type of arguments expected by the conversion specifier. C++ Code Optimizations. Top 10 Ways to be Screwed by "C". To get on this list, a bug has to be able to cause at least half a day of futile head scratching, and has to be aggravated by the poor design of the "C" language.

Top 10 Ways to be Screwed by "C"

In the interests of equal time, and to see how the world has progressed in the 20-odd years since "C" escaped from its spawning ground, see my Top 10 Ways to be Screwed by the Java programming language, and for more general ways to waste a lot of time due to bad software, try my Adventures in Hell page. A better language would allow fallible programmers to be more productive. The GNU C Library. Node: Top Next: Introduction Prev: (dir) Up: (dir) This is Edition 0.06 DRAFT, last updated 24 October 1994, of The GNU C Library Reference Manual , for Version 1.09 Beta of the GNU C Library. Introduction Purpose of the GNU C Library. Error Reporting How the GNU Library functions report error conditions.

Memory Allocation Your program can allocate memory dynamically and manipulate it via pointers. Character Handling Character testing and conversion functions. String and Array Utilities. Optimizing C and C++ Code. Embedded software often runs on processors with limited computation power, thus optimizing the code becomes a necessity.

Optimizing C and C++ Code

In this article we will explore the following optimization techniques for C and C++ code developed for Real-time and Embedded Systems. Many techniques discussed here have roots in the material we covered in the articles dealing with C to Assembly translation. A good understanding of the following articles will help: Premature optimization is the root of all evil Donald Knuth wrote, "Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. In general, correctness and readability considerations trump code performance issues for most of your code. Adjust structure sizes to power of two Place case labels in narrow range.

Dennis Ritchie Home Page. Location Dennis Ritchie Bell Labs, Rm 2C-517 600 Mountain Ave.

Dennis Ritchie Home Page

Murray Hill, New Jersey 07974-0636, USA dmr@bell-labs.com +1 908-582-3770 (office), +1 908-582-5857 (fax) In Memoriam Dennis died in early October, 2011. This is a note from his sister and brothers: As Dennis's siblings, Lynn, John, and Bill Ritchie--on behalf of the entire Ritchie family--we wanted to convey to all of you how deeply moved, astonished, and appreciative we are of the loving tributes to Dennis that we have been reading.

Dennis was an unfailingly kind, sweet, unassuming, and generous brother--and of course a complete geek. C/C++ Reference. Programming in C. Programming in C. Getting Started with LLVM System. Overview Welcome to LLVM!

Getting Started with LLVM System

In order to get started, you first need to know some basic information. First, LLVM comes in three pieces. The first piece is the LLVM suite. This contains all of the tools, libraries, and header files needed to use LLVM. The second piece is the Clang front end. There is a third, optional piece called Test Suite. Requirements Before you begin to use the LLVM system, review the requirements given below. Hardware LLVM is known to work on the following host platforms: Note Code generation supported for Pentium processors and upCode generation supported for 32-bit ABI onlyTo use LLVM modules on Win32-based system, you may configure LLVM with --enable-shared.MCJIT not working well pre-v7, old JIT engine not supported any more.

Note that you will need about 1-3 GB of space for a full LLVM build in Debug mode, depending on the system (it is so large because of all the debugging information and the fact that the libraries are statically linked into multiple tools). Software.