मुझे बस यह मिला।क्या करता है ((शून्य (*) (int)) - 1) मतलब है?
// /usr/include/sys/signal.h // OS X
#define SIG_ERR ((void (*)(int))-1)
((void (*)(int))-1)
भाग का क्या अर्थ है?
यह
#define SIG_ERR -1
के लिए अलग अलग है?
मुझे बस यह मिला।क्या करता है ((शून्य (*) (int)) - 1) मतलब है?
// /usr/include/sys/signal.h // OS X
#define SIG_ERR ((void (*)(int))-1)
((void (*)(int))-1)
भाग का क्या अर्थ है?
यह
#define SIG_ERR -1
के लिए अलग अलग है?
यह एक समारोह-सूचक को डाली है:
((type) value)
कहाँ प्रकार void (*)(int)
जो एक int
तर्क को स्वीकार करने और void
, जो वास्तव में एक संकेत हैंडलर के एक हस्ताक्षर है लौटने कार्य करने के लिए सूचक है:
typedef void (*sighandler_t)(int);
आप cdecl
उपकरण या वेब साइट के साथ इस तरह प्रकार डिकोड कर सकते हैं: http://cdecl.org/
क्षमा करें, लेकिन [ cdecl यह कहता है] (http://cdecl.ridiculousfish.com/?q=%28%28void+%28*%29%28int%29%29-1%29)। –
खैर @ सौरव घोष, आप सही हैं, सीडीईसीएल कहता है कि एक विफलता है, लेकिन असल में, मायौट मेरे अनुसार बिल्कुल सही है x)। मान लें कि सीडीसीएल उस प्रकार के कास्ट –
@ सौरवगोश पर असफल रहा है; यही कारण है कि मैं सुझाव देता हूं कि लोग सीडीसीएल का उपयोग न करें। – haccks
यह फ़ंक्शन पॉइंटर में -1 का एक कलाकार है जिसे SIG_ERR के प्रकार के रूप में अपेक्षित किया जाता है। -1 का उपयोग सीधे उन स्थितियों पर काम नहीं करता है जहां कंपाइलर को सही प्रकार की आवश्यकता होती है।
[THIS] पर एक नज़र डालें (http://stackoverflow.com/questions/8419483/casting-integer-to-function-pointer-in-signal-code-why-does-this-work) – LPs