LANGUAGE » C
Functions
Usage
c
#include <stdio.h>
/* Function prototype
We declare its body later, but can use from now on. */
int sum_numbers(int a, int b);
void my_function() {
printf("This is my function!\n");
}
int main() {
int total;
my_function();
total = sum_numbers(10, 5);
printf("Sum of 10 and 5 is %d", total);
return 0;
}
int sum_numbers(int a, int b) { // Function definition
return a + b;
}
Using pointers:
c
#include <stdio.h>
void swap_numbers(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main() {
int numA = 5, numB = 20;
int *pointerA = &numA;
int *pointerB;
pointerB = &numB;
printf("numA address %p with value %d\n", pointerA, numA);
printf("numB address %p with value %d\n", pointerB, numB);
swap_numbers(&numA, &numB);
printf("numA address %p with value %d\n", pointerA, numA);
printf("numB address %p with value %d\n", pointerB, numB);
return 0;
}
Storage class
Determines the scope, visibility and lifetime of variables.
c
#include <stdio.h>
int global_variable = 10; // Available everywhere, should be avoided
void some_function(int number) {
static int call_count = 0; // `static`: Value persists between calls
printf("Argument is %d. This function was called %d times.\n", number, ++call_count);
}
int main() {
if (1) {
int local_variable = 5; // Available only inside this block
some_function(local_variable); // OK, call_count becomes 1
}
some_function(local_variable); // Error: Variable is not defined
some_function(3); // call_count becomes 2
some_function(8); // call_count becomes 3
return 0;
}