[an error occurred while processing this directive]
|
С производством несвязанная. Я обычно при апдейте софта проверяю его, прогоняя какой-то старый и работающий проект. Причина такой проверки не в CCS. Но вот оказалось, что и CCS тоже не мешает проверять.
Я, когда работал с 1.20 CCS для 6000, был удивлен, что он находил ошибку в такой, примерно, конструкции:
void *func()
{
...
}
void main()
{
short *var;
var=(short *)(func());
...
}
func всегда возвращала указатель, выравненный по 4-байтной границе.
Но было удобно в зависимости от... интерпретировать его как указатель на short, int (он там 32 разряда) и т.д.
Говорил, что не может преобразовать указатель на void к указателю на short. То же самое - к преобразованию на другие указатели.
Я уж с досады хотел на каждый тип свою ф-ю написать, этот тип и возвращающую.
И случайно обнаружил, что на просто var=func() он не ругается. И все работает.
Ну и ладно, сделал так, как он хочет.
А когда поставил CCS 2.0, то решил для проверки скомпилировать как раз этот проект. Все с точностью до наоборот. Да еще с прагмами что-то было.
Так что ну ее, эту модернизацию во время работы:-) Вдруг там очередной шедевр, а из-за него переписывать.
E-mail: info@telesys.ru