Перейти к содержанию
    

фигурные скобки в Си

Здравствуйте!

Прошу помочь заполнить пробел в Си оперируя ссылками на источники

 

Вот есть такая конструкция чужого кода(большинству довольно знакомого)

        uxSavedStatus = uxPortSetInterruptMaskFromISR();
	{
		if( xTaskIncrementTick() != pdFALSE )
		{
			/* Pend a context switch. */
			_CP0_BIS_CAUSE( portCORE_SW_0 );
		}
	}
	vPortClearInterruptMaskFromISR( uxSavedStatus );

и я не пойму что хотел сказать автор выделяя "переход" на условие в скобки. Ведь условия для "перехода" нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, addi II said:

и я не пойму что хотел сказать автор выделяя "переход" на условие в скобки. Ведь условия для "перехода" нет

Просто форматирование. Нравятся автору "висячие" блоки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, addi II сказал:

что хотел сказать автор...

Ничего. Индусам за строки платят, если что.

А скобки действительно полезны несколько в других случаях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С точки зрения компилятора - ничего не значит в данном случае.

С точки зрения читающего - явно выделяет блок кода, который выполняется с замаскированными прерываниями - визуально легче воспринимается, откуда и до куда прерывания замаскированы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, addi II said:

и я не пойму что хотел сказать автор выделяя "переход" на условие в скобки

Может быть в этом блоке создавался объект Си++, тогда после выхода из блока, этот объект будет уничтожен. Что иногда может быть необходимым. Потом это создание объекта убрали из текста, а скобки - оставили. Да, я понимаю, что исходник похож на "Си", и вряд ли там Си++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.01.2023 в 13:49, dxp сказал:

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

лично я использую astyle. с моими настройками, пустую строку он просто удалит, а блок в скобках задвинет(что и требуется). В примере еще важно то, что сами функции, перед и после скобок, по своему смыслу прям "просят" блок между ними, как уже написали:

В 23.01.2023 в 23:57, engel65536 сказал:

откуда и до куда прерывания замаскированы.

    

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

иногда скобки ставят для возможности объявления переменной в середине функции, если это улучшит удобство чтения кода:

код;
код;
код;
код;
{

  int tmp = XXX;

  код;

  код;

}

//в этом месте переменная tmp не видна;
код;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.01.2023 в 02:46, haker_fox сказал:

Может быть в этом блоке создавался объект Си++, тогда после выхода из блока, этот объект будет уничтожен. Что иногда может быть необходимым. Потом это создание объекта убрали из текста, а скобки - оставили. Да, я понимаю, что исходник похож на "Си", и вряд ли там Си++.

TC, сам никогда в таком виде не проверял, но { } похожи на namespace

fun(x) 
{
 int var_x;  // (1)
 var_x = 1;
 . . . .
 {
    int var_x; // (2)
    var_x = 2;  
 }
// На ЭТОМ участке кода var_x которое (1) есть и == 1
// var_x, которое (2) зесь нет.

. . . .

}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...