49 lines
2.1 KiB
Plaintext
49 lines
2.1 KiB
Plaintext
The Ten Commandments for C Programmers
|
|
Henry Spencer
|
|
|
|
1. Thou shalt run lint frequently and study its pronouncements
|
|
with care, for verily its perception and judgement oft exceed thine.
|
|
|
|
2. Thou shalt not follow the NULL pointer, for chaos and madness
|
|
await thee at its end.
|
|
|
|
3. Thou shalt cast all function arguments to the expected type if
|
|
they are not of that type already, even when thou art convinced that
|
|
this is unnecessary, lest they take cruel vengeance upon thee when thou
|
|
least expect it.
|
|
|
|
4. If thy header files fail to declare the return types of thy
|
|
library functions, thou shalt declare them thyself with the most
|
|
meticulous care, lest grievous harm befall thy program.
|
|
|
|
5. Thou shalt check the array bounds of all strings (indeed, all
|
|
arrays), for surely where thou typest 'foo' someone someday shall
|
|
type 'supercalifragilisticexpialidocious'.
|
|
|
|
6. If a function be advertised to return an error code in the event
|
|
of difficulties, thou shalt check for that code, yea, even though the
|
|
checks triple the size of thy code and produce aches in thy typing
|
|
fingers, for if thou thinkest 'it cannot happen to me', the gods
|
|
shall surely punish thee for thy arrogance.
|
|
|
|
7. Thou shalt study thy libraries and strive not to re-invent them
|
|
without cause, that thy code may be short and readable and thy days
|
|
pleasant and productive.
|
|
|
|
8. Thou shalt make thy program's purpose and structure clear to thy
|
|
fellow man by using the One True Brace Style, even if thou likest it
|
|
not, for thy creativity is better used in solving problems than in
|
|
creating beautiful new impediments to understanding.
|
|
|
|
9. Thy external identifiers shall be unique in the first six
|
|
characters, though this harsh discipline be irksome and the years of
|
|
its necessity stretch before thee seemingly without end, lest thou tear
|
|
thy hair out and go mad on that fateful day when thou desirest to make
|
|
thy program run on an old system.
|
|
|
|
10. Thou shalt foreswear, renounce, and abjure the vile heresy which
|
|
claimeth that 'All the world's a VAX', and have no commerce with the
|
|
benighted heathens who cling to this barbarous belief, that the days of
|
|
thy program may be long even though the days of thy current machine be
|
|
short.
|