36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								JOS CODING STANDARDS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								It's easier on everyone if all authors working on a shared
							 | 
						||
| 
								 | 
							
								code base are consistent in the way they write their programs.
							 | 
						||
| 
								 | 
							
								We have the following conventions in our code:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* No space after the name of a function in a call
							 | 
						||
| 
								 | 
							
								  For example, printf("hello") not printf ("hello").
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* One space after keywords "if", "for", "while", "switch".
							 | 
						||
| 
								 | 
							
								  For example, if (x) not if(x).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Space before braces.
							 | 
						||
| 
								 | 
							
								  For example, if (x) { not if (x){.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Function names are all lower-case separated by underscores.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Preprocessor macros are always UPPERCASE.
							 | 
						||
| 
								 | 
							
								  There are a few grandfathered exceptions: assert, panic,
							 | 
						||
| 
								 | 
							
								  static_assert, offsetof.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Pointer types have spaces: (uint16_t *) not (uint16_t*).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Multi-word names are lower_case_with_underscores.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Comments in imported code are usually C /* ... */ comments.
							 | 
						||
| 
								 | 
							
								  Comments in new code are C++ style //.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* In a function definition, the function name starts a new line.
							 | 
						||
| 
								 | 
							
								  Then you can grep -n '^foo' */*.c to find the definition of foo.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Functions that take no arguments are declared f(void) not f().
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The included .dir-locals.el file will automatically set up the basic
							 | 
						||
| 
								 | 
							
								indentation style in Emacs.
							 |