C Programming Resources

C Library Reference Guides/Manuals
http://www.cppreference.com/all_c_functions.html
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/

MSDN C Library Reference
http://msdn2.microsoft.com/en-us/library/dtefa218(VS.80).aspx

C++ Reference Manual
http://www.cplusplus.com/reference/clibrary/cstdlib/strtol.html

Introductory/Intermediate C Programming Class Notes
Intermediate C Programming — Assignments…
http://www.eskimo.com/~scs/cclass/cclass.html

C Tutorials
http://www.cprogramming.com/tutorial.html

Getting data form the input stream (stdin) - covers scanf, gets
http://www.cpax.org.uk/prg/writings/fgetdata.php

C Snippets
E.g: gets should never be used in a real life program (it makes your program vulnerable to
buffer overflow attacks).

BAD:

char line[80];
 if (0 != gets(line)) { ... }

Safe alternative:

char line[80];
 if (0 != fgets(line, sizeof line, stdin)) { ... }

http://www.iso-9899.info/wiki/Snippets#switching_stdin.27s_mode_on_a_posix-ish_system

Converting from int to char, char to int, etc..
http://www.iso-9899.info/wiki/Converting

C Programming FAQs
http://faq.cprogramming.com/cgi-bin/smartfaq.cgi
http://c-faq.com/

About comments (when and how to comment)
Programs are meant to be beautiful. If someone tells you otherwise,
you'd probably do best not to listen to the rest of his advice.
A good program is beautiful in both its concept — the algorithm used,
the design, the flow of control — but also in its readability.
http://www.cprogramming.com/tutorial/comments.html

C and C++ Language Syntax Reference
http://www.cprogramming.com/reference/

glibc Reference Manual
The GNU C Library, commonly known as glibc, is the C standard library released by the GNU Project.
http://www.gnu.org/software/libc/manual/

The Ten Commandments for C Programmers
http://www.lysator.liu.se/c/ten-commandments.html

Function Inlining
Visual C

inline function_declarator;   
__inline function_declarator;   // Microsoft Specific
__forceinline function_declarator;   // Microsoft Specific

http://msdn2.microsoft.com/en-us/library/z8y1yy88.aspx

GCC (todo: search description page)
Sample:

inline void printBigInteger(unsigned char bigInteger[]) __attribute__((always_inline));

Attention:

In the next release of GCC, 4.3, -std=c99 or -std=gnu99 will direct GCC to handle inline functions as specified in the C99 standard. In preparation for this, GCC 4.2 will warn about any use of non-static inline functions in gnu99 or c99 mode. This new warning may be disabled with the new gnu_inline function attribute or the new -fgnu89-inline command-line option. Also, GCC 4.2 and later will define one of the preprocessor macros GNUC_GNU_INLINE or GNUC_STDC_INLINE to indicate the semantics of inline functions in the current compilation.
Source: http://www.gnu.org/software/gcc/gcc-4.2/changes.html

Free Help Authoring, Manual and Documentation Writing Tools
http://www.thefreecountry.com/programming/helpauthoring.shtml

C Introduction (Tutorial for beginners)
http://computer.howstuffworks.com/c.htm/printable

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License