[an error occurred while processing this directive]
|
>unsigned long my_var1 ;
>unsigned long my_var1 ; // I can declare the same variable twice !!!
То что он не ругается это правильно. Вот если так написать, то ругнется.
unsigned long my_var1 ;
long my_var1 ;
С первым покончено HiTech == MSQuckC
Второе, это печально, но линкер не знает ничего о типах переменных. О них знает только компилятор. Чтобы на это не нарываться описывайте переменные в одном файле-файле подключения.
Было одно различие. Отладчик Hitech видит эту переменную как ulong, а MSQC - как float.
Я вот недавно на такую багу наткнулся
enum aaa{
ADC_r_Normal
ADC_r_ErrEEprom ,
ADC_r_ErrHardware ,
ADC_r_ErrCut ,
ADC_r_ErrMargin ,
ADC_r_ErrNotFound ,
ADC_r_ErrUnknown ,
ADC_r_ErrParNotFound ,
ADC_r_ErrNotInit ,
ADC_r_TestMode
}
switch{bbb}{
case ADC_r_Normal:
...
case ADC_r_ErrNotInit:
....
case ADC_r_TestMode:
}
так вот до 8 все нормально,а на ADC_r_TestMode(9) код лажевый генериться не ту константу в xor подставляет. Заменил на #define, все заработало. Это к случаю, чтоб отдельно не постить.
Всего, Иван.
E-mail: info@telesys.ru