Re: Re2: ERROR in BC45!!!
- From
- sunroy@co.su (2:50/128.0)
- To
- All ()
- Date
- 1996-06-22T18:15Z
- Area
- SU.WINDOWS.PROG
X-RealName: Vitaly Filatov
Артём!
Устранить ошибку, изменением ключей транслятора можно,
потому, что неправильно работает синтаксический
анализатор.
Но если Вы посмотрите на ассемблерный код, (ключ -S),
то видно, что неправильно генерируется адрес перехода.
Не команда выборки данных, которая может варьироваться
в зависимости от модели памяти, а именно команда перехода.
А в программе ничего неправильного нет и она должна
работать всегда. А вот работает она не всегда.
Я могу слегка изменить синтаксический граф этой
программы и она сразу начинает работать правильно
(цикл for выполняется 1 раз):
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
int num,ch,i;
char *p,string[]="123";
printf("num=%d\n",atoi(string));
p=string;
ch=*p++;
num=ch-'0';
for(i=0;i<1;i++) { /*добавлено*/
while((ch=*p++)!=NULL) {
num=num*10+ch-'0';
}
} /*добавлено*/
printf("num=%d\n",num);
return(0);
}
и работает иначе нет.
Граждане! А знаете ли Вы, что система подсчёта голосов
на выборах сделана на PC? А вдруг программы написаны
на ВС 4.5?
---
* Origin: Roy International Consultancy Inc. (2:50/128.0@fidonet)