सी में टाइप किए गए कीवर्ड का उपयोग क्या है? इसकी आवश्यकता कब है?टाइपपीफ का उपयोग क्या है?
उत्तर
:
typedef C और C++ प्रोग्रामिंग भाषाओं में एक कीवर्ड है। टाइपपीफ का उद्देश्य वैकल्पिक नामों को मौजूदा प्रकारों को असाइन करना है, अक्सर जिनकी मानक घोषणा बोझिल, संभावित रूप से भ्रमित होती है, या एक कार्यान्वयन से दूसरे में भिन्न होने की संभावना होती है।
और:
कश्मीर & आर राज्यों वहाँ एक typedef प्रयोग करने के लिए दो कारण हैं कि। सबसे पहले, यह एक कार्यक्रम को और अधिक पोर्टेबल बनाने के साधन प्रदान करता है। हर जगह एक प्रकार को बदलने के बजाय यह प्रोग्राम की स्रोत फ़ाइलों में दिखाई देता है, केवल एक ही टाइपिफ स्टेटमेंट को बदलने की जरूरत है। दूसरा, एक टाइपिफ एक जटिल घोषणा को समझने में आसान बना सकता है।
और के खिलाफ एक तर्क:
वह (ग्रेग के.एच.) का तर्क है कि इस अभ्यास न केवल अनावश्यक रूप से कोड obfuscates, यह भी प्रोग्रामर गलती से बड़ी सोच उन्हें सरल प्रकार होने के लिए संरचनाओं का दुरुपयोग करने का कारण बन सकता है।
typedef
एक प्रकार के रूप में कुछ परिभाषित करने के लिए है। उदाहरण के लिए:
typedef struct {
int a;
int b;
} THINGY;
... दिए गए संरचना के रूप में THINGY
परिभाषित करता है। इस तरह, आप इसे इस तरह उपयोग कर सकते हैं:
THINGY t;
... बजाय:
struct _THINGY_STRUCT {
int a;
int b;
};
struct _THINGY_STRUCT t;
... जो थोड़ा अधिक वर्बोज़ है। typedefs कुछ चीजें नाटकीय रूप से स्पष्ट कर सकते हैं, खासकर कार्यों के लिए पॉइंटर्स।
यह अन्य प्रकार का उपनाम कर सकता है।
typedef unsigned int uint; /* uint is now an alias for "unsigned int" */
typedef मौजूदा प्रकार को उपनाम बनाने के लिए प्रयोग किया जाता है। यह misnomer का थोड़ा सा है: टाइपपीफ नए प्रकार को परिभाषित नहीं करता है क्योंकि नए प्रकार अंतर्निहित प्रकार के साथ अदला-बदले होते हैं। टाइपिफ़ीफ़ अक्सर इंटरफ़ेस परिभाषाओं में स्पष्टता और पोर्टेबिलिटी के लिए उपयोग किए जाते हैं जब अंतर्निहित प्रकार परिवर्तन के अधीन होता है या महत्व का नहीं होता है।
उदाहरण के लिए:
// Possibly useful in POSIX:
typedef int filedescriptor_t;
// Define a struct foo and then give it a typedef...
struct foo { int i; };
typedef struct foo foo_t;
// ...or just define everything in one go.
typedef struct bar { int i; } bar_t;
// Typedef is very, very useful with function pointers:
typedef int (*CompareFunction)(char const *, char const *);
CompareFunction c = strcmp;
typedef भी अज्ञात प्रकार के नाम देने के लिए इस्तेमाल किया जा सकता। ऐसे मामलों में, टाइप किए गए प्रकार का टाइप किया गया प्रकार:
typedef struct { int i; } data_t;
typedef enum { YES, NO, FILE_NOT_FOUND } return_code_t;
नामकरण सम्मेलन भिन्न हैं। आमतौर पर trailing_underscore_and_t
या CamelCase
का उपयोग करने की अनुशंसा की जाती है।
टाइपपीफ एक नया प्रकार पेश नहीं करता है लेकिन यह सिर्फ एक प्रकार के लिए एक नया नाम प्रदान करता है।
प्रकार है कि गठबंधन सरणियों, structs, संकेत या कार्य:
TYPEDEF
लिए किया जा सकता।
पोर्टेबिलिटी, typedef
आपको जिस प्रकार की आवश्यकता है, उसे सुविधाजनक बनाने के लिए। जब आप विभिन्न प्लेटफॉर्म पर कोड पोर्ट करते हैं, तो टाइप टाइप में केवल परिवर्तन करके सही प्रकार का चयन करें।
ए typedef
जटिल प्रकार के कलाकार के लिए एक साधारण नाम प्रदान कर सकता है।
typedef
का नाम अज्ञात प्रकारों के नाम देने के लिए भी किया जा सकता है। ऐसे मामलों में, टाइप किए गए टाइप टाइप प्रकार के लिए एकमात्र नाम होगा।
नोट: -चाहिए उपयोग structs के साथ TYPEDEF
। किसी भी संरचना की परिभाषा में हमेशा एक टैग का उपयोग करें, भले ही इसकी आवश्यकता न हो।
क्या आप स्ट्रिप के साथ टाइपपीफ का उपयोग न करने पर विस्तार कर सकते हैं? –
: "।।। कश्मीर & आर राज्यों वहाँ एक typedef प्रयोग करने के लिए दो कारण हैं कि सबसे पहले ... दूसरा, एक typedef एक जटिल घोषणा समझने में अधिक आसान बना सकते हैं"
यहाँ typedef का उपयोग कर, जटिल प्रकार सरल बनाने का दूसरा कारण के लिए एक उदाहरण (जटिल प्रकार कश्मीर & आर से "लिया जाता है सी प्रोग्रामिंग भाषा के दूसरे संस्करण पी। 136) है।
char (*(*x([])())
एक्स है सरणी सूचक वाला फ़ंक्शन [] सूचक की चार लौटने कार्य करने के लिए।
हम ऊपर घोषणा समझा जा सकता typedefs का उपयोग कर बना सकते हैं। कृपया नीचे उदाहरण देखें।
typedef char (*pfType)(); // pf is the type of pointer to function returning
// char
typedef pfType pArrType[2]; // pArr is the type of array of pointers to
// functions returning char
char charf()
{ return('b');
}
pArrType pArr={charf,charf};
pfType *FinalF() // f is a function returning pointer to array of
// pointer to function returning char
{
return(pArr);
}
निम्नलिखित उदाहरण में टाइपपीफ के उपयोग की व्याख्या करना। इसके अलावा, कोडपीड को कोड को और अधिक पठनीय बनाने के लिए उपयोग किया जाता है।
#include <stdio.h>
#include <math.h>
/*
To define a new type name with typedef, follow these steps:
1. Write the statement as if a variable of the desired type were being declared.
2. Where the name of the declared variable would normally appear, substitute the new type name.
3. In front of everything, place the keyword typedef.
*/
// typedef a primitive data type
typedef double distance;
// typedef struct
typedef struct{
int x;
int y;
} point;
//typedef an array
typedef point points[100];
points ps = {0}; // ps is an array of 100 point
// typedef a function
typedef distance (*distanceFun_p)(point,point) ; // TYPE_DEF distanceFun_p TO BE int (*distanceFun_p)(point,point)
// prototype a function
distance findDistance(point, point);
int main(int argc, char const *argv[])
{
// delcare a function pointer
distanceFun_p func_p;
// initialize the function pointer with a function address
func_p = findDistance;
// initialize two point variables
point p1 = {0,0} , p2 = {1,1};
// call the function through the pointer
distance d = func_p(p1,p2);
printf("the distance is %f\n", d);
return 0;
}
distance findDistance(point p1, point p2)
{
distance xdiff = p1.x - p2.x;
distance ydiff = p1.y - p2.y;
return sqrt((xdiff * xdiff) + (ydiff * ydiff));
} In front of everything, place the keyword typedef.
*/
- 1. टाइपपीफ का वैध उपयोग?
- 2. निजी टाइपपीफ पोर्टेबल का सार्वजनिक उपयोग है?
- 3. इस टाइपपीफ का अर्थ क्या है?
- 4. सी ++ टाइपपीफ का उपयोग क्यों करें?
- 5. सी ++: ऑटो, या टाइपपीफ का उपयोग करें?
- 6. टाइपपीफ
- 7. टाइपपीफ का दायरा
- 8. टेम्पलेट टाइपपीफ - आपका काम क्या है?
- 9. टाइपपीफ
- 10. एक बहुआयामी सरणी का टाइपपीफ?
- 11. टाइपपीफ एनम,
- 12. टाइपपीफ और उपयोग के बीच अंतर क्या हैं?
- 13. स्ट्रक्चर टाइपपीफ
- 14. #defines के बजाय सी टाइपपीफ का उपयोग क्यों करें?
- 15. टाइपपीफ प्रकार
- 16. कक्षा का दायरा टाइपपीफ खराब अभ्यास?
- 17. 'उपनाम' और 'टाइपपीफ' के बीच क्या अंतर है?
- 18. वीबी.नेट में टाइपपीफ के लिए समकक्ष या वर्कअराउंड क्या है?
- 19. टाइपपीफ स्ट्रक्चर पॉइंटर परिभाषा
- 20. टाइपपीफ प्रकार की जांच?
- 21. सीआरटीपी और टाइपपीफ
- 22. टाइपपीफ और अधूरा प्रकार
- 23. टाइपपीफ स्ट्रक्चर नोड * NODE क्या इंगित करता है?
- 24. क्या कोई इस सी ++ टाइपपीफ को समझा सकता है?
- 25. क्या सी ++ पीओडी टाइपपीफ की वैल्यू प्रारंभिक करता है?
- 26. सी/सी ++ टाइपपीफ/structs
- 27. टाइपपीफ रिटर्न वैल्यू
- 28. सी ++ 11 में 'टाइपपीफ' और 'उपयोग' के बीच क्या अंतर है?
- 29. टाइपपीफ संरचना और enum, क्यों?
- 30. टाइपपीफ और प्रिंटफ प्रारूप विनिर्देश
क्या वहां कभी भी 'typedef'' struct' नहीं होने का कोई कारण है? – Panzercrisis
@ पेंजरक्रिसिस: मुझे एक के बारे में पता नहीं है, निश्चित रूप से मैं इसे नियमित रूप से कर रहा था ~ 1989-1998 (जिन वर्षों में मैंने अपने सी काम का अधिकांश हिस्सा किया), लेकिन मैं सी विशेषज्ञ नहीं हूं (अब)। –