micro-C is simplified C language, stripped of certain functionalities that it contains. The very basic idea of micro-C is simplicity and avoidance of complicated language constructs in order to produce clean and understandable hypothetical assembly code.
int fibonacci (int x) {
	if (x <= 1) 
		return 1;
	return fibonacci(x - 1) + fibonacci(x - 2);
}
 						
int x = 1;
int main() {
	return x;
}
 						
int main() {
	int a = 1;
	int * b = 1;
	int c[] = {1, 2, 5};
	int r;
	int * d, e, f[], g = 3, h = r = 5;
}
 						
int swap(int * x, int * y) {
	int temp = *x;
	*x = *y;
	*y = temp;
}
 						int arr[10]; int x = arr[5];
int x = 1; int * y = malloc(sizeof(int)); * y = 1; int z = ++x + *y; z *= 3; z = x << 2;
if (!x && y > 2) {
	return 0;
} else {
	return function(x + y);
}
					
while (x--) {
	y += 2;
}
 						x = (y + z) * 3 / (q << 2);
int foo(int x) {
	return x;
}
int bar() {
	int (*ptr2func)(int);
	ptr2func= foo;
	int x = ptr2func(2);
}
 						
int * foo() {
	int * x = malloc(sizeof(int));
	*x = 1;
	return x;
}
 						
if (x == 1 && (y == 2 || z == 3)) {
	...
}
 						printf(); scanf();
#include<stdio.h>
for (int i = 0; i < 10; i++) {
}
 						int * x = NULL;