आप 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;