मैं जानता हूँ कि typedef के प्रयोजन के मौजूदा प्रकार
वास्तव में करने के लिए वैकल्पिक नाम आवंटित है। कार्यों में प्रकार होते हैं, और यह इस फ़ंक्शन प्रकार में Tcl_DriverOutputProc
नाम निर्दिष्ट करता है। समारोह प्रकार ही नाम नहीं है के साथ एक समारोह की तरह लिखा है:
int(ClientData, const char *, int, int *)
और एक समारोह घोषणा के साथ के रूप में, आप मापदंडों के लिए नामों में शामिल हैं या उन्हें बाहर छोड़ देते हैं, के रूप में आप चुन सकते हैं।
इसका उपयोग कैसे किया जा सकता है?
आप रन-टाइम पर व्यवहार निर्दिष्ट करने के लिए पॉइंटर्स का उपयोग फ़ंक्शंस का उपयोग कर सकते हैं; उदाहरण के लिए:
typedef void function();
void hello() {printf("Hello\n");}
void goodbye() {printf("Goodbye\n");}
int main() {
function * pf = hello;
pf(); // prints "Hello"
pf = goodbye;
pg(); // prints "Goodbye"
}
इस मामले में, यह आप TCL उत्पादन के कुछ पहलू को संभालने के लिए एक समारोह लिखते हैं, और TCL बताया कि समारोह का उपयोग करने के लिए अनुमति देता है।
स्रोत
2013-04-17 10:30:03
यह घोषणा करने के लिए [समारोह संकेत] प्रयोग किया जाता है (http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work) TCL_CHANNELTYPE – alexrider
में तुम क्या समझते हो यह (typedef int (* हैलो) (शून्य);)? – MYMNeo