52 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
.SH
 | 
						|
Appendix B
 | 
						|
.TL
 | 
						|
The Ten Commandments for C Programmers
 | 
						|
.AU
 | 
						|
Henry Spencer
 | 
						|
.IP 1
 | 
						|
Thou shalt run \fIlint\fR frequently and study its pronouncements with
 | 
						|
care, for verily its perception and judgement oft exceed thine.
 | 
						|
.IP 2
 | 
						|
Thou shalt not follow the NULL pointer, for chaos and madness await thee at
 | 
						|
its end.
 | 
						|
.IP 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.
 | 
						|
.IP 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.
 | 
						|
.IP 5
 | 
						|
Thou shalt check the array bounds of all strings (indeed, all arrays),
 | 
						|
for surely where thou typest ``foo'' someone someday shall type
 | 
						|
``supercalifragilisticexpialidocious''.
 | 
						|
.IP 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.
 | 
						|
.IP 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.
 | 
						|
.IP 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.
 | 
						|
.IP 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.
 | 
						|
.IP 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.
 |