में नहीं मान लीजिए मैं उन तीन फ़ाइलें है:संकलित पुन: घोषणा त्रुटि, लेकिन सी
आह
//a.h header
#include <stdio.h>
int int_variable;
void a_f()
{
printf("int_variable: %d\n", int_variable)
int_variable++;
}
bh
//b.h header
#include <stdio.h>
int int_variable;
void b_f()
{
printf("int_variable: %d\n", int_variable)
int_variable++;
}
मुख्य .c
//main.c
#include "a.h"
#include "b.h"
int main()
{
a_f();
b_f();
return 0;
}
सी ++ में संकलन क्यों Redefinition त्रुटि उत्पन्न करता है, लेकिन सी में नहीं है? मैं सी ++ डेवलपर हूं, फिर सी ++ में मुझे समझ में आता है, लेकिन सी में क्यों यह कोई त्रुटि नहीं है?
जब मैं निष्पादित सी कोड उत्पन्न, उत्पादन किया गया था:
पूर्णांक चर: 0
पूर्णांक चर: 1
डुप्लिकेट (प्रकार)। Http://stackoverflow.com/questions/2331584/global-variable-implementation/2331782#2331782 और http://stackoverflow.com/questions/1987413/inclusion-of-unused-symbols-in-object-files-by देखें -compiler-इन-सी बनाम-सी/1987495 # 1987495। जवाब है: सी में टिकाऊ परिभाषाएं हैं, सी ++ नहीं है। –
सटीक डुप्लिकेट! –
क्षमा करें, मैंने वास्तव में खोज की है, लेकिन मुझे लगता है कि मैंने गलत कीवर्ड के साथ ऐसा किया: पी, धन्यवाद आलोक। – coelhudo