मुझे क्लाइंट को सी स्थैतिक पुस्तकालय प्रदान करने की आवश्यकता है और एक संरचना परिभाषा अनुपलब्ध बनाने में सक्षम होने की आवश्यकता है। इसके शीर्ष पर मुझे ग्लोबल वैरिएबल का उपयोग करके लाइब्रेरी प्रारंभ में मुख्य से पहले कोड निष्पादित करने में सक्षम होना चाहिए।स्थिर पुस्तकालय में संरचना परिभाषा को छिपाएं
private.h
#ifndef PRIVATE_H
#define PRIVATE_H
typedef struct TEST test;
#endif
private.c (this should end up in a static library)
#include "private.h"
#include <stdio.h>
struct TEST
{
TEST()
{
printf("Execute before main and have to be unavailable to the user.\n");
}
int a; // Can be modified by the user
int b; // Can be modified by the user
int c; // Can be modified by the user
} TEST;
main.c
test t;
int main(void)
{
t.a = 0;
t.b = 0;
t.c = 0;
return 0;
}
जाहिर है इस कोड काम नहीं करता है किसी को जानता है यह काम करने के लिए कैसे ... लेकिन दिखाने मैं क्या करने की जरूरत ...:
यहाँ मेरी कोड है? मैं थोड़ा सा गूगल करता हूं लेकिन एक जवाब नहीं मिल रहा है, किसी भी मदद की सराहना की जाएगी।
टीआईए!
की अनुमति देता है संकलक संभाल के लिए एक अधूरी प्रकार का उपयोग प्रकार त्रुटियों को पकड़ने के लिए, और कार्यान्वयन कार्यों में कास्टिंग टाल। –
कंपाइलर _still_ पकड़ प्रकार त्रुटियों को कर सकता है क्योंकि आपका लाइब्रेरी कोड सही टाइप किए गए चर के साथ काम करता है। या, यदि आप वास्तव में अपने कार्यों को गलत प्रकार दिया गया है, तो यह एक उपयोगकर्ता त्रुटि है और वे जो भी कठिनाई लाएंगे, उनके लायक होंगे :-) जैसा कि मैंने कहा था, यह करने का एकमात्र तरीका है, न कि एकमात्र तरीका। – paxdiablo
पृथ्वी पर क्यों उपयोग शून्य * का उपयोग करेगा और सभी प्रकार की जांच खो देंगे? टाइपपीफ संरचना MyHiddenStruct MyHandle; माईहैंडल * allocHandle(); –