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

Что делает сия функция static void platform_free_uninit

static void platform_free_uninit( void *ptr )

{

((void) ptr);

}

 

Если лень отвечать - просто посоветуйте книгу...

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


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

static void platform_free_uninit( void *ptr )

{

((void) ptr);

}

 

Если лень отвечать - просто посоветуйте книгу...

 

Да ничего она не делает

 

((void) ptr); чтоб компилятор не ругался, на неиспользуемую переменную

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


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

Правильней объявить:

#define _U_    __attribute__((__unused__))

А потом писать

static void platform_free_uninit(_U_ void *ptr ){}

Тогда gcc не будет матюкаться (отключать предупреждения не стоит, я вообще делаю -Wall -Werror -Wextra).

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


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

Правильней объявить:

С каких пор компиляторозависимые прагмы стали лучше универсального способа, работающего с любым компилятором?

Если лень отвечать - просто посоветуйте книгу...

Не припомню книжек в которых подобное описывалось бы. Нужно просто узнать и запомнить.

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


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

С каких пор компиляторозависимые прагмы...

С таких, что gcc в 99% случаев используется. Если используется шланг, то он тоже прагмы gcc понимает. А со всякой фигней вроде sdcc подход особый, но там и варнингов подобных нет.

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


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

Порочный подход. Если нравятся прагмы, то в новом стандарте есть [[maybe_unused]].

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


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

Ни чего не делает, Заглушка. Чтоб компилятор не давал ворнинга, правильнее в определении в аргументах не указывать имена неиспользуемых переменных, а только тип

 

static void platform_free_uninit( void * )

{

}

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


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

Из книжек мне понравился Прата С., подробно разжевывает тонкие и неочевидные места.

У него есть и по С и по С++:

Язык программирования C. Лекции и упражнения 2013 Пер. с англ., 5-е издание

Язык программирования С++. Лекции и упражнения 2005 Пер. с англ.

 

 

 

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


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

Из книжек мне понравился Прата С., подробно разжевывает тонкие и неочевидные места.

У него есть и по С и по С++:

Язык программирования C. Лекции и упражнения 2013 Пер. с англ., 5-е издание

Язык программирования С++. Лекции и упражнения 2005 Пер. с англ.

Большое спасибо. Также большое спасибо всем ответившим на мой вопрос.

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


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

((void) ptr); чтоб компилятор не ругался, на неиспользуемую переменную

Чтоб не ругался достаточно определить функцию как:

static void platform_free_uninit(void *) {}

 

Правильней объявить:

неправильней.

 

PS: о, блин - juvf уже ответил...

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


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

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

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

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

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

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

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

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

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

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