मैं एक समारोह सूचक समारोह जिसका char *
यह arguments.Into उम्मीद के रूप में घोषित किया गया है, मैं करना चाहते हैं char const*
तर्क लेने के रूप में घोषित एक समारोह में एक सूचक को बचाओ।पासिंग `पूर्णांक (*) (चार स्थिरांक *)` जहां `पूर्णांक (*) (चार *)` उम्मीद है
मुझे लगता है कि मैं एक आवरण या एक डाली उपयोग कर सकते हैं। निर्मोक और अधिक सरल लगता है, लेकिन मैं कानूनी तौर पर इस तरह के एक समारोह सूचक कलाकारों का परिणाम कॉल कर सकते हैं?
उदाहरण नीचे दिए गए कोड:
static int write_a(char * X){
return 0;
}
static int write_b(char const* X){
return 0;
}
static int wrapped_write_b(char * X){
return write_b(X);
}
typedef int (*write_fn)(char *);
write_fn a = write_a;
write_fn b = wrapped_write_b;
write_fn b1 = (write_fn)write_b; //is b1 legally callable?
[इस] के अनुसार (http://stackoverflow.com/a/559671/669576) यह यूबी (मुझे लगता है) है। हालांकि, जैसा कि 'कॉन्स' केवल बिल्ड-टाइम पर रन-टाइम पर लागू होता है, मुझे नहीं लगता कि यह एक समस्या होगी। –
@ दांह: कलाकार पूरी तरह से कानूनी है। आपके द्वारा प्रदान किया गया लिंक इस कलाकार से बिल्कुल संबंधित नहीं है। – AnT