Gcc / clang'ın kullanılmayan özniteliğini kullanabilirsiniz, ancak kaynağın her yerinde gcc'ye özgü özniteliklere sahip olmaktan kaçınmak için bir başlıkta bu makroları kullanıyorum, ayrıca __attribute__
her yerde biraz ayrıntılı / çirkin.
#ifdef __GNUC__
# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
#else
# define UNUSED(x) UNUSED_ ## x
#endif
#ifdef __GNUC__
# define UNUSED_FUNCTION(x) __attribute__((__unused__)) UNUSED_ ## x
#else
# define UNUSED_FUNCTION(x) UNUSED_ ## x
#endif
Sonra yapabilirsin ...
void foo(int UNUSED(bar)) { ... }
bar
Yanlışlıkla özniteliği bırakamazsınız böylece herhangi bir yerde kodu kullanmayı denerseniz bir hata alırsınız çünkü bunu tercih ederim .
ve fonksiyonlar için ...
static void UNUSED_FUNCTION(foo)(int bar) { ... }
Not 1):
Bildiğim kadarıyla MSVC'nin eşdeğeri yok __attribute__((__unused__))
.
Not 2): Makro, parantez içeren bir bağımsız değişkenler için değil iş olacak Eğer böyle bir tartışmayı varsa o kadar sen olamaz yapmak, ya da hiç, bu tek dezavantajı ise makro Şu ana kadar bulunan bu durumlarda Geri çekilmelerini için
UNUSED
float (*coords)[3]
float UNUSED((*coords)[3])
float (*UNUSED(coords))[3]
UNUSED
(void)coords;