Язык Си в примерах/XCC C
Внешний вид
- Компиляция программ
- Простейшая программа «Hello World»
- Учимся складывать
- Максимум
- Таблица умножения
- ASCII-коды символов
- Верхний регистр
- Скобочки
- Факториал
- Степень числа
- Треугольник Паскаля
- Корень уравнения
- Система счисления
- Сортировка
- Библиотека complex
- Сортировка на основе qsort
- RPN-калькулятор
- RPN-калькулятор на Bison
- Простая грамматика
- Задача «Расчёт сопротивления схемы»
- Простая реализация конечного автомата
- Использование аргументов командной строки
- Чтение и печать без использования stdio
- Декодирование звукозаписи в формате ADX
- Другие примеры
- XCC C
XCC C — это диалект языка Си.[1] У него есть свои преимущества и недостатки:
- double и float, не поддерживаются; никогда не инициализируйте двумерные массивы
- ограничения на структурах
- возможность написания программ на Си под iiixmish2
- простая реализация многопоточности
Примеры программ
[править]fib.c
[править]#include <stdio.h>
int fib(int n) {
return n < 2 ? n : (fib(n - 1) + fib(n - 2));
}
int main(void) {
for(int i = 0; i < 21; i++)
printf("%d\n", fib(i));
}
mt.c
[править]#include <stdio.h>
#include <stdlib.h>
typedef void __thread1_t; /* __thr* */
int counter_active;
__thread1_t counter() {
/* 1) в новом потоке нельзя вызывать
пользовательские функции
2) все переменные здесь должны быть статическими */
counter_active = 1;
static int i;
for(i = 0; counter_active; i++) {
cr(); putn(i);
sleep(1);
}
halt();
}
int main() {
counter();
getchar();
counter_active = 0;
sleep(1);
exit(0);
}
__retptr.c
[править]#include <stdio.h>
#include <stdlib.h>
int n;
void f(void) {
extern int __retptr;
if(n--) f();
printf("%d\n", __retptr);
}
int main(int argc, char *argv[]) {
n = strtol(argv[1], NULL, 0);
f();
}
thm.c (для Xmtwolime, нужен root)
[править]#include <xmtwolime.h>
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
if (argc < 3) {
puts ("usage: thm BGCOLOR TEXTCOLOR");
exit (EXIT_FAILURE);
}
*__extern_label("_main_bgColor") = atoi (argv[1]);
*__extern_label("_main_otherColor") = atoi (argv[2]);
exit (EXIT_SUCCESS);
}