C crash proposed contents

crash.html

Hello world

  • imperativt sprog

  • simple funktioner

  • simple variable (heltal)

  • variable skal defineres før brug

  • void som begreb

Blok begreb

Indent er kun for dine øjnes skyld - i modsætning til eks Python

// funktion

void funkt1(void)
{
  printf("%s","hej");
}

eller


void funkt1(void) { printf("%s","hej"); } // op til dig og din stil


online C beautifier

Strongly typed language

link til beskrivelse af strongly typed

  • Variable skal erklæres før de bruges

    • globale - alle kan nå dem

    • lokale variable i funktioner

    • vatable ifm parameteroverførsel til funktioner


Heltal

https://en.wikipedia.org/wiki/C_data_types

Variable skal erklæres med type: <type> navn; <type> var1, var2;

eks: int var; long v2,v3,v4;

Sign

char c: 8 bit med fortegn interval: -2^7 - 2^7-1 : -128 -> 0 - > 127

int etHeltal;

uint32_t et32BitHeltal;

float etKommatal;

Kan initialiseres ifm erklæring:

int medVal = 34;


  • Basalt to typer heltal og kommatal

    • i forskellig størrelse (antal bit)

    • heltal (char,int,long) varianter deraf uden fortegn

    • int str afh af arkitektur (arduino 16 bit -32768 - 32767) (pc 32/64 bit)

    • kommatal (float, double)

Stram typekontrol mulig : int16_t, int32_t,…

Se https://en.wikipedia.org/wiki/C_data_types

Heltal findes også som positiv heltal - dvs uden fortegn

  • unsigned int udenFortegn;

  • uint32_t udenfortegn32bit; unsigned 32 bit int

Navngivning

Variable og funktions navne må

  • IKKE starte med et tal (0..9)

  • IKKE have mellem i navn (int en Ost; )

  • IKKE indeholde nationale tegn - altså kun a-z, A-z sproget er case sensitivt

Arrays

Flere af en slags af en variabel


int enVar;

int tiVar[10];


tiVar[0] = 0;  // first elm
tiVar[9] = 10;  // last elm

tiVar[-1] = 0;  // ulovlig at indeksere unden for array - dit ansvar !!!
tiVar[21] = 0;  // ulovlig at indeksere unden for array - dit ansvar !!!

Arrays størrelse kan IKKE ændres undervejss


loops

Loops afgør om man skal køre udfra sandhedsværdien af et boolsk udtryk

  • for loop

  • while loop

  • do {} while loop


for (int taeller = 0; taeller < 10;  taeller++)   // taeller++ er det samme som taeller = taeller + 1
{
} 

eller som while løkke - er ens

int taeller;

taeller = 0;
while (taeller < 10) {
   ..
   ..
   taeller++;
}

 
det boolske udtryk - som her er taeller < 0 - skal være snsdt for at køre en tur mere i løkken


boolskeoperatorer == , < , <= , > , >= , !=


C operatorer

plus mins sammenligne bitflip osv - Da C er et HW nært sprog er der også HW orienterede operatorer.

[https:www.programiz.com/c-programming crash bla omkring operatorer

C operatorer

  • calc average

if else and case switch

Raw Functions

  • blocks incode and functions

  • Scope rules global vars, local - with succesiv blocks { }

Function w return value - which is simple types only (and structs)

  • Function parms call by value / reference

Pointers var, reference to -> call by reference model

arrays adresses in memory for loop …

your own variable type - structs

nested loops - 2d,3d,…

AND MAYBE SOME ARDUINO RELATED STUFF

  • bit shifting