Во многих компиляторах я использовал следующее, исключая поддержку lint.
#if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
# define PGM_GNUC_UNUSED __attribute__((__unused__))
#else
# define PGM_GNUC_UNUSED
#endif
Протестированные компиляторы: GCC, Clang, EKOPath, Intel C Compiler / Composer XE, MinGW32 для Cygwin / Linux / MSYS, MinGW-w64 для Cygwin / Linux, Sun ONE Studio / Oracle Solaris Studio, Visual Studio 2008 / 2010.
Пример использования:
pgm_tsc_init (
PGM_GNUC_UNUSED pgm_error_t** error
)
{
...
}
PGM
- стандартный префикс для этого проекта на основе языка Си. GNUC
является соглашением от GLib для этого атрибута.
Я думаю, что одна компиляция предупреждает о __attribute__
при определенных обстоятельствах, но, безусловно, без ошибок.