реклама на сайте
подробности

 
 
> Оператор switch() в avr-gcc, как это должно быть по стандарту?
ARV
сообщение Feb 22 2012, 09:05
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



читать стандарт С99 на английском весьма затруднительно для меня, поэтому прошу ответить тех, кто уже зубы съел на этих стандартах.

в операторе switch допускается указывать до первого вхождения метки case любые операторы, то есть вот так МОЖНО (компилятор не ругается):
Код
switch(var){
   somevar = 12;
   case 0:
      // some code here
}


однако avr-gcc полностью игнорирует эти "предварительные ласки", даже если somevar объявлена как volatile

вопрос знатокам: есть ли тут какие-то ошибки, несоответствия стандарту и т.п. "нюансики"? если можно, но бесполезно - почему вообще можно? почему нет варнинга? если нельзя - почему нет ошибки? ну и так даее...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Feb 24 2012, 05:42
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Тема была не тут а на Шараге
Собсна вопрос.
Код
#define step(what) state = __LINE__; what; break; case __LINE__:
int func(void)
{
  unsigned int state=0;
  do
    {
      switch(state)
      {
        case 0:
        step(fread(&obj, sizeof(obj),1,my_file)); // сначала выполнили одно действие из здеся
        step(fread(&obj, sizeof(obj),1,my_file));
        step(fread(&obj, sizeof(obj),1,my_file));
      }
      // затем здесь чегой-то пошаманили, после каждого действия
      int error =ferr(my_file);
      if(error) return error;
    }
  while(!feof(my_file)); // и перешли к выполнению след действия
return 0;
}

Есть ли у такой конструкции устойчивое название?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ARV   Оператор switch() в avr-gcc   Feb 22 2012, 09:05
- - Xenia   А в каком случае вы хотели бы, чтобы выполнялась и...   Feb 22 2012, 09:14
- - ARV   речь не о том, чего бы я хотел, а том, как это пон...   Feb 22 2012, 09:20
|- - MrYuran   Цитата(ARV @ Feb 22 2012, 13:20) о беспол...   Feb 22 2012, 09:50
|- - ARV   Цитата(MrYuran @ Feb 22 2012, 13:50) Попр...   Feb 22 2012, 10:06
- - _Pasha   Там всё понятно написано КодEXAMPLE In the artific...   Feb 22 2012, 09:39
- - ARV   то есть писать можно все, что угодно, но по сути э...   Feb 22 2012, 09:40
- - _Pasha   Как это все что угодно? А декларации? Они не проиг...   Feb 22 2012, 09:43
|- - ARV   Цитата(_Pasha @ Feb 22 2012, 13:43) Как э...   Feb 22 2012, 09:57
- - _Pasha   Да. int i; имеет смысл, а int i =4; - не имеет.   Feb 22 2012, 10:00
|- - ReAl   Цитата(_Pasha @ Feb 22 2012, 12:00) Да. i...   Feb 22 2012, 11:12
- - ReAl   Цитата(ARV @ Feb 22 2012, 11:05) в операт...   Feb 22 2012, 11:08
|- - _Pasha   Цитата(ReAl @ Feb 22 2012, 15:08) Ещё быв...   Feb 22 2012, 11:11
- - ARV   ну не доходит до меня глубинный смысл милостивого ...   Feb 23 2012, 11:09
|- - GetSmart   Цитата(ARV @ Feb 23 2012, 16:09) ну не до...   Feb 23 2012, 13:26
|- - _Pasha   Цитата(GetSmart @ Feb 23 2012, 16:26) А я...   Feb 23 2012, 14:54
- - _Pasha   Почему ненужную? У этих объявлений просто нет испо...   Feb 23 2012, 11:54


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 23:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01399 секунд с 7
ELECTRONIX ©2004-2016