Язык Си шаг за шагом — страница 2

  • Просмотров 17648
  • Скачиваний 2168
  • Размер файла 405
    Кб

((cc=getc(fdi)) !=EOF) { if (Alpha(cc)==0) continue; for (i=1,out[0]=cc; (cc=getc(fdi))!=EOF; i++) { if (cc ==' ' || (cc=Alpha(cc))!=0) out[i]=cc; else break; } out[i]=0; if (i > 2) fprintf(fdo,"%s\t\t%s\n",out,in); } fclose(fdi); fclose(fdo); } void step() { int i,n,mode; sprintf(x,"%s.000",in); if ((fdi=fopen(x,"r"))==NULL) return; sprintf(x,"%s0.txt",in); if ((fdo=fopen(x,"w"))==NULL) return; c0num=cnum=inum=tnum=1; nstr=0; sign=0; while((n=GetStr())!=-1) { NoLF(); if (n!=0) fprintf(fdo,"\n\n"); else { mode=0; if (str[0]==CONTROL) mode=1; if (str[0]=='┌') mode=3; if (str[0]=='╔') mode=3; if (str[0]=='/' && str[1]=='/' && befor) mode=2; if (str[0]=='#' && befor) mode=2; for (i=0;

str[i]!=0 && befor; i++) { if (str[i]==' ') continue; if (str[i]=='\t') continue; if (str[i]>='a' && str[i]<='z') mode=4; break; } switch(mode) { case 0: Proc(); break; case 3: if (!Copy("TBL",tnum++,2)) return; break; case 2: if (!Copy("C",cnum++,1)) return; break; case 1: if (!Copy("TXT",inum++,0)) return; break; case 4: if (!Copy("C0",c0num++,3)) return; break; } } } fclose(fdi); fclose(fdo); keywords(); } void main(int narg, char *argv[]) { struct ffblk DIR; int done,i; expand=0; if (narg < 2) { printf("bk.exe файл | * [+]\n* - все файлы\n+ - преобразование c-файлов\тип по умолчанию - .000\n"); exit(0); } strcpy(in,argv[1]); if (narg==3 &&

argv[2][0]=='+') expand++; if (in[0]!='*') { step(); } else { for (done=findfirst("*.000",&DIR,FA_DIREC); !done; done=findnext(&DIR)) { if ((DIR.ff_attrib & FA_DIREC) ==0 && DIR.ff_name[0] !='.') { strcpy(in,DIR.ff_name); for (i=0; in[i]!='.'; i++); in[i]=0; step(); } } } } Идентификатор BK1 Определением переменной BK1 Тип данных BK1 Индекс BK1 Инициализация BK1 Функция BK1 Заголовок функции BK1 Имя функции BK1 Результат функции BK1 Формальные параметры BK1 Локальные переменные BK1 Глобальные переменные BK1 Вызов функции BK1 Фактические параметры BK1

Инкремент BK1 Декремент BK1 Логическая операция ИЛИ BK1 Логическая операция НЕ BK1 Логическая операция И BK1 Оператор BK1 Ограничитель BK1 Составной оператор BK1 Блок BK1 Тело цикла BK1 Шаг цикла BK1 Заголовочный файл BK1 Переменная BK21 Тип данных BK21 Определение переменной BK21 Базовый тип данных BK21 Машинное слово BK21 Бит BK21 Разрядность BK21 Байт BK21 Стандартное машинное слово BK21 Двойное слово BK21 Тетрада BK21 Дополнительный код BK21 Перечислимый тип BK21

Код символа BK21 Индекс BK21 Направление выполнения операций BK22 Приведение типов BK22 Логическая операция Или BK22 Логическая операция Не BK22 Адресное выражение BK22 Пустой оператор BK23 Составной оператор BK23 Блок BK23 Условие продолжения BK23 Заголовок функции BK24 Тело функции BK24 Определение функции BK24 Фактические параметры BK24 Локальные переменные BK24 Автоматические переменные BK24 Передача параметров по значению BK24 Глобальные переменные BK24

Внешние переменные BK24 Объявление функции BK24 Прототип BK24 Расширение имени файла BK25 Макроопределение BK25 Макроподстановка BK25 Макропроцессор BK25 Макросредства BK25 Лексика BK25 Идентификатор BK25 Синтаксис BK25 Семантика BK25 Генерация кода BK25 Объектный модуль BK25 Модульное программирование BK25 Библиотека объектных модулей BK25 Компоновка BK25 Программирование без goto BK31 Итерационный цикл BK33 Метод последовательных приближений BK33 Строка BK34