Professional Documents
Culture Documents
Tof-21-3 C Forritun-Bendar
Tof-21-3 C Forritun-Bendar
Tof-21-3 C Forritun-Bendar
Hjálmtýr Hafsteinsson
Haust 2021
Visualizer
Dæmi um kall með tilvísun
• Ekki hægt að útfæra fall til að víxla á gildi tveggja
breyta ef við notum gildisviðföng
• Auðvelt að gera það með bendum
... 5
3
i = 3; a i
j = 5;
void swap(int *a, int *b) {
swap(&i, &j); 3
5
int tmp = *a;
... b j
*a = *b;
*b = tmp;
} 3
tmp
return 0;
}
Sýnidæmi um tengdan lista
struct Node *head, *p, *q;
head = (struct Node *)malloc(sizeof(struct Node));
head->data = val;
p = head;
q = (struct Node *)malloc(sizeof(struct Node));
q->data = val;
p->next = q;
p = q;
#include <stdio.h>
argv[0] er nafn
keyrsluskrárinnar int main( int argc, char *argv[] ) {
if( argc == 2 ) {
printf("Viðfangið er %s\n", argv[1]);
Hin viðföngin eru } else if( argc > 2 ) {
í argv[1] til printf("Of mörg viðföng\n");
argv[argc-1] } else {
printf("Þarf eitt viðfang\n");
}
}
C forrit í mörgum skrám
• Stærri C forrit eru oftast brotin upp í margar skrár
– Hvert fall í sérstakri skrá
• Einfaldar þýðingu
– Þurfum þá aðeins að þýða skránna sem breytist
• Í upphafi eru allar c-skránar þýddar yfir í o-skrár
– fall1.c þýtt yfir í fall1.o
• Svo eru allar o-skrárnar tengdar (linked) yfir í
keyrsluskrá
Margar C-skrár
main.c
#include <stdio.h>
Skýrgreining
(declaration) ytra falls
int summa(int a, int b);