क्या हम सी प्रोग्रामिंग भाषा में structs में कार्यों को परिभाषित कर सकते हैं?structs में कार्यों को परिभाषित करें
उत्तर
नहीं, क्योंकि फ़ंक्शन डेटा नहीं हैं। लेकिन आप एक संरचना के अंदर फ़ंक्शन पॉइंटर्स को परिभाषित कर सकते हैं।
struct foo {
int a;
void (*workwithit)(struct foo *);
}
सं
आप structs में समारोह संकेत हो सकता है, लेकिन उस के रूप में पास के रूप में आप मिल जाएगा है।
नहीं, आप नहीं कर सकते। संरचनाओं में केवल चर शामिल हो सकते हैं, संरचना के अंदर फ़ंक्शन पॉइंटर्स संग्रहीत करने से आपको वांछित परिणाम मिल सकते हैं।
नहीं, आप नहीं कर सकते सी कार्यक्रमों में संरचनाओं के अंदर कार्यों को परिभाषित, लेकिन अगर आपकी फ़ाइल का विस्तार सीपीपी (है कि नहीं सी), आप वर्गों की तरह सदस्य कार्य कर सकते हैं हालांकि इनमें से डिफ़ॉल्ट संशोधक कार्य 'सार्वजनिक' (कक्षा के विपरीत) होंगे।
संरचनाएं a good link, another good link बारे में अधिक जानकारी के लिए इन लिंक पढ़ें, One more good link
सी में एक सम्मेलन ++ के रूप में, क्लासेसभंडारण कार्य करता है और चर दोनों और संरचनाएं के लिए उपयोग किया जाता है उपयोग किया जाता है केवल भंडारण के लिए सूचना (यानी डेटा)।
आप शायद क्या मतलब है: "हालांकि, अगर आप इसे एक अलग प्रोग्रामिंग भाषा में संकलित करते हैं जिसे सी ++ कहा जाता है ..." – Lundin
आप सही हैं @ लुंडिन, दरअसल स्तर पर कुछ छात्र खुद को सी कोड को .cpp फ़ाइल के अंदर लिखकर भ्रमित करते हैं, जो वास्तव में एक बुरा अभ्यास है। – aProgrammer
आप वास्तव में सी में एक संरचना के अंदर सामान घोषित नहीं कर सकते हैं। यह सी ++ या कोई अन्य ओओ भाषा नहीं है जहां कोई वस्तु किसी प्रकार के दायरे को समाहित करती है।
सी structs बहुत सरल वस्तुएं हैं, यह स्मृति के एक टुकड़े के प्रबंधन के लिए सिर्फ वाक्य रचनात्मक चीनी है। जब आप नई संरचना "इंस्टेंस" बनाते हैं, struct A a;
, कंपाइलर केवल अपने आकार के अनुसार स्टैक स्पेस को सुरक्षित करता है, और जब आप a.member
करते हैं, तो कंपाइलर उस सदस्य के ऑफसेट को जानता है, इसलिए यह उस सदस्य के ऑफसेट &a
+ पर जाता है। वे ऑफ़सेट आमतौर पर पिछले सदस्यों के आकार के बराबर नहीं होते हैं, क्योंकि संकलक आमतौर पर स्मृति में कुछ पैडिंग बिट्स को स्मृति में संरेखित करने के लिए जोड़ता है।
आशा है कि इससे थोड़ा सा मदद मिलेगी। आप स्पष्ट रूप से सी स्टैक्चर से थोड़ा अधिक उम्मीद करते हैं :-)
नहीं, आपके पास सी प्रोग्राम में संरचना के अंदर फ़ंक्शन नहीं हो सकते हैं। मैंने एक कोड लिखा और एक .c और a .cpp के रूप में सहेजा। .cpp फ़ाइल अपेक्षा के अनुसार अनुपालन करती है और काम करती है, लेकिन .c फ़ाइल संकलित भी नहीं होती है।
यहां आपके संदर्भ के लिए कोड है। इसे एक बार .cpp के रूप में सहेजें और फिर इसे चलाएं। फिर उसी कोड को .c के रूप में सहेजें और इसे संकलित करें। आपको एक संकलन त्रुटियां मिलेंगी।
#include <stdio.h>
struct C {
void Test(int value) {
static int var = 0;
if (var == value)
printf("var == value\n");
else
printf("var != value\n");
var = value;
}
};
int main() {
C c1;
C c2;
c1.Test(100);
c2.Test(100);
int ii;
scanf("%d",&ii);
}
जब से ** ** ** ** ** के अंदर संभव नहीं है ** प्रोग्राम? – baldrs
मेरा मतलब था। एसी प्रोग्राम में स्ट्रक्चर। –
को ठीक कर देगा। धन्यवाद। –
नहीं, लेकिन आप सी ++ संरचना में कर सकते हैं!
इसलिए मैंने "नो" के साथ अपने प्रश्न का उत्तर दिया। क्या आप उस हिस्से को याद करते थे? – NDEthos
हाँ आप संरचना के अंदर फ़ंक्शन घोषित कर सकते हैं कृपया निम्नलिखित स्निपेट देखें।
#include<stdio.h>
struct A
{
int a;
void (*ptr)(const struct A*);
};
void display(const struct A*p)
{
//p->a = 10; //It is not possible because structure is constant
printf("Display fun :%d\n",p->a);
}
void print(struct A*ptr)
{
ptr->a = 20;
printf("Print fun :%d\n",ptr->a);
}
int main()
{
struct A obj = {5}; //Structure initialization
display(&obj);
print(&obj);
return 0;
}
- 1. अजगर को परिभाषित गतिशील कार्यों
- 2. structs
- 3. PostgreSQL उपयोगकर्ता परिभाषित कार्यों को डिबग करना
- 4. PHP में स्थानीय कार्यों को कैसे परिभाषित किया जाए?
- 5. उपयोगकर्ता परिभाषित कार्यों में त्रुटि प्रबंधन
- 6. परिभाषित कम arity आंशिक कार्यों
- 7. structs को intPtr
- 8. structs
- 9. structs
- 10. structs
- 11. एक विनाशक को परिभाषित करने से सदस्य कार्यों को
- 12. बड़ी संख्या में structs
- 13. कोल्डफ्यूजन में structs की सरणी को कैसे क्रमबद्ध करें
- 14. हास्केल: सभी उपयोगकर्ता परिभाषित कार्यों की सूची/सूची प्राप्त करें
- 15. = ऑपरेटर परिभाषित किए बिना structs पर क्यों काम करता है?
- 16. सी हेडर फ़ाइल (.h) में स्वयं-रेफरेंसियल structs को परिभाषित करना?
- 17. कमसीएसएस के साथ उपयोगकर्ता परिभाषित कार्यों?
- 18. SQL उपयोगकर्ता परिभाषित कार्यों के लिए अनिश्चित संख्या में तर्क?
- 19. Win32API structs
- 20. अंतर जब नए सिरे से परिभाषित कार्यों
- 21. rapidJSON structs
- 22. सी संकेत structs
- 23. तुलना structs
- 24. प्रारंभ में बिटसेट आकार को परिभाषित करें?
- 25. सी # में नए ऑपरेटरों को परिभाषित करें?
- 26. जावास्क्रिप्ट में वैश्विक उपयोगकर्ता परिभाषित कार्यों की सूची?
- 27. कार्यों में ढूँढना एक के साथ परिभाषित: ब्लॉक
- 28. Clojure में - मैं कैसे structs
- 29. समेकित structs के लिए समानता ऑपरेटरों को C++ (इन) कैसे कार्यान्वित करें?
- 30. सी - structs की सरणी शुरू करें
खैर, यह इंटरनेट का हिस्सा है, इसलिए ... – Jon
आप struct एक तरह कुछ मतलब है {शून्य च (शून्य) {...}}; ? – tchap