gcc / clangの未使用の属性を使用できますが、これらのマクロをヘッダーで使用して、ソース全体にgcc固有の属性が含まれるのを回避します__attribute__
。
#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
その後、あなたがすることができます...
void foo(int UNUSED(bar)) { ... }
bar
どこかでコードで使用しようとするとエラーが発生し、誤って属性を残しておくことができないため、私はこれを好みます。
そして関数について...
static void UNUSED_FUNCTION(foo)(int bar) { ... }
注1):
私の知る限り、MSVCにはに相当するものがありません__attribute__((__unused__))
。
注2):かっこを含む引数ではマクロは機能しません。
そのため、 実行できないような引数がある場合、または、これは、これまでに見つけたマクロの唯一の欠点です。これらの場合、フォールバックしますにUNUSED
float (*coords)[3]
float UNUSED((*coords)[3])
float (*UNUSED(coords))[3]
UNUSED
(void)coords;