Basic code styling conventions

This commit is contained in:
Arnau Camprubí 2022-08-25 20:39:02 +02:00
pare 44c78007d8
commit be5ddb8a2c

79
STYLE.md Normal file
Veure arxiu

@ -0,0 +1,79 @@
# Code styling guide
This document describes the code styling conventions to use for any contribution to this project
## Global
Some conventions are applied to all languages (unless otherwise indicated)
- 4 space indentation
- Comments should have a space between the symbol designating it and the comment itself
## C
```c
// Pre-processor directives should generally go in the following order:
// 1. #pragma
// 2. #include
// 3. #define
// Includes with <> should go before includes with ""
#include <stdint.h>
#include "vga.h"
// Pre-processor definitions should be in UPPER_SNAKE_CASE
#define SOME_DEFINE
// All function and variable names should be in lower_snake_case
int add(int a, int b);
// Opening curly brackets ('{') should NOT go in a separate line
int add(int a, int b){
return a + b;
}
// Asterisks denoting a pointer should be separated from the
// type definition but NOT from the variable/function name
// Examples:
// - char *str <- This is ok
// - char* str <- This is NOT ok
// - char * str <- This is NOT ok
// - char*str <- This is NOT ok
// This also applies to casts:
// - (char *)str <- This is ok
// - (char*)str <- This is NOT ok
void say(char *str){
printf("You said: %s\n", str);
}
int main(){
say("Hello");
// Switch statement should be as shown below
switch(add(1, 1)){
case 0:
// ...
break;
case 1:
// ...
break;
case 2:
// ...
break;
default:
// ...
}
return add(3, 4);
}
```
## x86 nasm assembly
```assembly
; Directives such as "bits 32" should be encapsulated with []
[bits 32]
; Everything is written in lowercase
start:
; Instructions should be 1-level indented
mov eax, ebx
```