Показать сообщение отдельно
Старый 16.11.2010, 08:14   #641   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Butik Посмотреть сообщение
исправил = на == -картина та же....Хотя и при = компилятор не ругался...
Такие записи правильные, но смысл разный:
Код:
if(tmp == 1) {...}
читается - если tmp равно 1, то выполняется выражение в скобках, если не равно 1, то пропускается.
Код:
if(tmp = 1) {...}
читается - tmp присвоить 1 и если tmp не равно 0 (а оно всегда 1), то всегда будет выполняться условие в скобках.


Цитата:
Сообщение от Butik Посмотреть сообщение
И потом... если в CCS можно писать через запятую(и все работает!!!!)... то почему в MikroC нельзя????
У запятой в в выражениях Си особый смысл, поэтому так делать не надо. Если надо, чтобы выполнилось несколько операторов, то их надо заключить в {......}, в паскале аналог begin.......end:
Код:
void main() {
init() ;  
   do {
    old_GPIO = GPIO;
    if(old_GPIO.F5 ==1) 
        {
          TRISIO = 0x28;
          old_GPIO.F1=1;
          GPIO = old_GPIO;
        }
    if (old_GPIO == 0)
          TRISIO = 0x2A;
    }  while(1);
}
  Ответить с цитированием