मैं सी प्रोग्रामिंग के लिए नया नहीं हूँ। लेकिन मुझे समझ में नहीं आता कि पॉइंटर को सी में संरचना सदस्य के रूप में कार्य करने के लिए उपयोगिता क्या है। उदा।सी में उपयोगी संरचना सदस्य के रूप में कार्य करने के लिए कैसे पॉइंटर्स?
// Fist Way: To keep pointer to function in struct
struct newtype{
int a;
char c;
int (*f)(struct newtype*);
} var;
int fun(struct newtype* v){
return v->a;
}
// Second way: Simple
struct newtype2{
int a;
char c;
} var2;
int fun2(struct newtype2* v){
return v->a;
}
int main(){
// Fist: Require two steps
var.f=fun;
var.f(&var);
//Second : simple to call
fun2(&var2);
}
क्या प्रोग्रामर इसका उपयोग ऑब्जेक्ट ओरिएंटेड (ओओ) आकार को सी कोड देने और सार वस्तु प्रदान करने के लिए करते हैं? या कोड तकनीकी देखने के लिए।
मुझे लगता है कि उपरोक्त कोड में दूसरा तरीका अधिक सभ्य और सुंदर है। मुट्ठी के रास्ते में, हमें अभी भी &var
पास करना होगा, यहां तक कि fun()
संरचना का सदस्य है।
यदि संरचना परिभाषा के भीतर फ़ंक्शन पॉइंटर रखना अच्छा होता है, तो कृपया कारण को समझाने में सहायता करें।
सी ++ कक्षाओं में आभासी कार्यों के बारे में सोचें। वे हुड के नीचे एक ही फैशन में लागू होते हैं। –
[एम्बेडेड सिस्टम में फ़ंक्शन पॉइंटर्स के संबंध में] (http://stackoverflow.com/questions/4836245/function-pointers-in-embedded-systems-are-they-useful)। – Lundin
धन्यवाद @ लंदन! वास्तव में बहुत उपयोगी और दिलचस्प जवाब मैंने पाया। –