आप सही कर रहे हैं:
यहाँ कोड है। फंक्शन पॉइंटर को आसानी से उसी रिटर्न प्रकार के विभिन्न कार्यों को इंगित करने और तर्कों की एक ही संख्या लेने के लिए उपयोग किया जा सकता है। तर्क प्रकार फ़ंक्शन पॉइंटर तर्कों की घोषणा से मेल खाना चाहिए।
typedef int (*g)(int);
// typedef
समारोह सूचक की:
अपने मामले में आप के रूप में अपने समारोह सूचक g
निर्धारित कर सकते हैं।
g
फ़ंक्शन के लिए int
मान लौटने के लिए एक फ़ंक्शन पॉइंटर है और एक int
तर्क ले रहा है।
#include<stdio.h>
typedef int (*pointer_to_function)(int first_parameter_of_type_int, int second_parameter_of_type_int);
int my_function_returning_int_and_taking_two_int_arguments(int par1, int par2)
{
int result = par1 + par2;
return result;
}
int my_mul_function(int par1, int par2)
{
int result = par1 * par2;
return result;
}
int main()
{
int res; // returning result will be here
pointer_to_function my_fun_pointer; // declare function pointer variable;
my_fun_pointer = my_function_returning_int_and_taking_two_int_arguments; // function pointer points to `my_function_returning_int_and_taking_two_int_arguments` function
res = my_fun_pointer(2,3); // Call function through pointer
printf(" result of `my_function_returning_int_and_taking_two_int_arguments` = %d \n", res);
my_fun_pointer = my_mul_function; // now function pointer points to another function: `my_mul_function`
res = my_fun_pointer(2,3); // Call function through pointer
printf(" result of `my_mul_function` = %d \n", res);
return 0;
}
आउटपुट:
result of `my_function_returning_int_and_taking_two_int_arguments` = 5
result of `my_mul_function` = 6
आपका कोड संभवतः काम नहीं कर सकते क्योंकि अगर जी एक typedef है, आप कर सकते हैं '
समारोह सूचक के उपयोग के नीचे एक साधारण प्रोग्राम के रूप में रेखांकित किया जा सकता है इसे एक समारोह के रूप में कॉल करें। क्या आप वर्णन कर सकते हैं कि आप विशेष रूप से क्या करने की कोशिश कर रहे हैं? – templatetypedef
वास्तव में? मैंने सोचा कि मेरे मालिक ने मुझे यह काम करने के लिए एक टाइपपीफ का उपयोग करने के लिए कहा था। क्या आप # डीफिन के साथ समान कुछ हासिल कर सकते हैं? – SetSlapShot
आपकी विशेष रूप से क्या करने की कोशिश कर रहे हैं? यह स्पष्ट नहीं है कि आप क्या करने का प्रयास कर रहे हैं। – templatetypedef