संभव डुप्लिकेट:
Double Negation in C++ code.मैक्रो परिभाषा में डबल नकारात्मक का उद्देश्य क्या है, जैसे (!! (expr))?
मैं एक कोड बेस पढ़ रहा हूँ, और कुछ इस तरह लगता है:
#define uassert(msgid, msg, expr) (void)((!!(expr))||(uasserted(msgid, msg), 0))
मैं समझ नहीं क्यों (!! (expr)) का उपयोग एक (expr) के बजाय किया जाता है। वैसे भी, एक नकारात्मक नकारात्मक मतलब सकारात्मक है, है ना? क्या मैं कुछ भूल रहा हूँ?
मैं यह भी पता नहीं लगा सकता कि इस कोड का उद्देश्य क्या है! ;) – BlackBear
आर की तरह कहते हैं, यह पूरी तरह से बेकार है। – GManNickG
इस मामले में यह अनावश्यक है क्योंकि आपने स्वयं सही ढंग से बताया है। शायद यह कुछ संकलक चेतावनी से बचने के लिए जोड़ा गया था। –