ok..thnx....i got it.....your r ryt n i m ryt too....:)..thnx On Fri, Nov 16, 2012 at 11:54 PM, Neeraj Gangwar <[email protected]>wrote:
> Ignore last to last mail. Sorry. Do show expanded content in last mail. > On 16 Nov 2012 23:49, "Neeraj Gangwar" <[email protected]> wrote: > >> Yes, it would be like copying the code in the other file. You have to >> find a way to do it in Dev-C++. >> In linux it's simple. Just use *gcc file1.c file2.c *in terminal (as >> told earlier). >> >> If you are still confused, Think it this way >> If you are compiling only one file in which you have declared variable as >> intern, where would compiler find its actual definition because you are *not >> compiling *the second file. >> >> *file1.c : file in which variable is defined* >> *file2.c : file in which variable is declared as extern* >> * >> * >> When you compile both the files together, as compiler sees *extern >> *declaration, >> it will check if you have defined that variable somewhere. It will only >> check files that are being compiled*. So if you are not compiling *file1.c >> *it will not check that file. That's why you have to compile both the >> files together. >> >> In simple words, what extern does is that it checks if you have defined >> that variable somewhere* in the code that is *being compiled. * >> >> Try following codes >> *//start of code* >> *#include<stdio.h>* >> *main() {* >> >> *extern int i;* >> *printf("i = %d", i);* >> *return 0;* >> >> *}* >> *//end of code* >> It will show you an error that variable i has not been defined anywhere >> in the file. >> * >> * >> *//start of code* >> *#include<stdio.h>* >> *main() {* >> >> *extern int i;* >> *printf("i = %d", i);* >> *return 0;* >> >> *}* >> * >> * >> *int i = 7;* >> *// end of code* >> Try above code, it will run and show you the correct result. Your codes >> are doing precisely the same thing. >> >> *#include "file1.c"* or *#include "file2.c"* was based on the same idea. >> >> *scope rules apply. >> >> Some lines of *the* book The C Programming Language by Dennis Ritchie: >> There must be only one definition of an external variable among all the >> files *that make up the* >> *source program*; other files may contain extern declarations to access >> it. (There may also be >> extern declarations in the file containing the definition.) Array sizes >> must be specified with >> the definition, but are optional with an extern declaration. >> >> >> *Neeraj Gangwar* >> B.Tech. IV Year >> Electronics and Communication IDD >> Indian Institute of Technology Roorkee >> Contact No. : +91 9897073730 >> >> >> On Fri, Nov 16, 2012 at 10:52 PM, rahul sharma >> <[email protected]>wrote: >> >>> but with adding it willl copy aalll the code....we we dont need to >>> copy..if we declare int i in file 1...and include in file 2..then i can use >>> it in file 2 with its extern declaration...m i ryt? >>> >>> >>> On Fri, Nov 16, 2012 at 2:42 PM, Neeraj Gangwar >>> <[email protected]>wrote: >>> >>>> For Dev-C++, you have to include one file in another. >>>> So either add *#include "file1.c" *in file2.c and compile file2.c or >>>> add *#include "file2.c" *in file1.c and compile file1.c. >>>> >>>> Hope this helps. >>>> >>>> >>>> *Neeraj Gangwar* >>>> B.Tech. IV Year >>>> Electronics and Communication IDD >>>> Indian Institute of Technology Roorkee >>>> Contact No. : +91 9897073730 >>>> >>>> >>>> On Fri, Nov 16, 2012 at 9:11 AM, Rahul Kumar Dubey >>>> <[email protected]>wrote: >>>> >>>>> @rahulsharma >>>>> file1.c >>>>> >>>>> #include<stdio.h> >>>>> extern int i;// defintion provided in this file itself >>>>> extern int j; // definition provided in file2 >>>>> void next() >>>>> { >>>>> ++i; >>>>> other(); >>>>> } >>>>> int main() >>>>> { >>>>> ++i; >>>>> printf("%d\n",j); >>>>> printf("%d\n",i); >>>>> next(); >>>>> } >>>>> int i=3; >>>>> >>>>> // end of file1.c >>>>> >>>>> file2.c >>>>> extern int i; // declaration of i as extern >>>>> int j=10; // j defined in file2 here which was declared as extern in >>>>> file 1 >>>>> >>>>> void other() >>>>> { >>>>> ++i; >>>>> printf("%d\n",i); >>>>> } >>>>> // end of file2.c >>>>> >>>>> compile both file together >>>>> as >>>>> rahul@rahul:~gcc file1.c file2.c >>>>> rahul@rahul:~./a.out >>>>> you will get the required output >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Nov 16, 2012 at 8:27 AM, Neeraj Gangwar < >>>>> [email protected]> wrote: >>>>> >>>>>> That's why you are getting the error. You have to compile both the >>>>>> files together. Search on google. I don't use dev c++. >>>>>> >>>>>> *Neeraj Gangwar* >>>>>> B.Tech. IV Year >>>>>> Electronics and Communication IDD >>>>>> Indian Institute of Technology Roorkee >>>>>> Contact No. : +91 9897073730 >>>>>> >>>>>> >>>>>> On Thu, Nov 15, 2012 at 11:32 PM, rahul sharma < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> No...individually...dev cpp..how to compile both together??? >>>>>>> >>>>>>> >>>>>>> On Thu, Nov 15, 2012 at 9:26 PM, Neeraj Gangwar < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Which compiler are you using ? Are you compiling both the files >>>>>>>> together ? >>>>>>>> >>>>>>>> *Neeraj Gangwar* >>>>>>>> B.Tech. IV Year >>>>>>>> Electronics and Communication IDD >>>>>>>> Indian Institute of Technology Roorkee >>>>>>>> Contact No. : +91 9897073730 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Nov 15, 2012 at 9:10 PM, rahul sharma < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> but how can i use extern..if i simply declare a variable in file1 >>>>>>>>> as int j and try to use in file2 with extern then it shows that j nit >>>>>>>>> defined..how cum file2 knows in which file j is defined....for e.g if >>>>>>>>> i use >>>>>>>>> extern in file it means that this variable/fxn is defined somewhr >>>>>>>>> else.then >>>>>>>>> what are those files in which it searches this variable definition..i >>>>>>>>> m >>>>>>>>> getting error....plese give me 2 files in which one files defines >>>>>>>>> variable >>>>>>>>> and other uses using extern.....its not working for me.... >>>>>>>>> >>>>>>>>> On Thu, Nov 15, 2012 at 12:08 PM, Rahul Kumar Dubey < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> @rahul it will compile perfectly well . note that you have >>>>>>>>>> declared j in file 1 as extern and used it and have not provided its >>>>>>>>>> definition any where >>>>>>>>>> so getting compile error. >>>>>>>>>> as far as functions are concerned they are external by defaullt >>>>>>>>>> as specified by @shobhit >>>>>>>>>> >>>>>>>>>> i am attaching your corrected code which runs fine ... >>>>>>>>>> file1.c >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> #include<stdio.h> >>>>>>>>>> extern int i; >>>>>>>>>> //extern int j; // provide a declaration for this >>>>>>>>>> void next(void); >>>>>>>>>> >>>>>>>>>> int main() >>>>>>>>>> { >>>>>>>>>> ++i; >>>>>>>>>> printf("%d\n",i); >>>>>>>>>> >>>>>>>>>> next(); >>>>>>>>>> getchar(); >>>>>>>>>> } >>>>>>>>>> int i=3; >>>>>>>>>> void next() >>>>>>>>>> { >>>>>>>>>> ++i; >>>>>>>>>> printf("%d\n",i); >>>>>>>>>> //printf("%d",j); // since no defintion provided so getting error >>>>>>>>>> other(); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> file2.c >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> extern int i; >>>>>>>>>> void other() >>>>>>>>>> { >>>>>>>>>> ++i; >>>>>>>>>> printf("%d\n",i); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> if you want to use j u need to provide defintion either in file 1 >>>>>>>>>> or file 2 >>>>>>>>>> output: >>>>>>>>>> 4 >>>>>>>>>> 5 >>>>>>>>>> 6 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, Oct 24, 2012 at 10:56 PM, rahul sharma < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> can nyone provide me dummy code of how exactly to use extern in >>>>>>>>>>> c.. >>>>>>>>>>> in dev environment >>>>>>>>>>> >>>>>>>>>>> when i declare int i in one fyl >>>>>>>>>>> and try use use with extern int i in another then it doesnt >>>>>>>>>>> compile..plz coment >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Wed, Oct 24, 2012 at 9:58 PM, rahul sharma < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Then why its not running? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Oct 24, 2012 at 6:50 PM, SHOBHIT GUPTA < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> http://www.geeksforgeeks.org/archives/840 >>>>>>>>>>>>> >>>>>>>>>>>>> By default, the declaration and definition of a C function >>>>>>>>>>>>> have “extern” prepended with them. It means even though we don’t >>>>>>>>>>>>> use extern >>>>>>>>>>>>> with the declaration/definition of C functions, it is present >>>>>>>>>>>>> there. For >>>>>>>>>>>>> example, when we write. >>>>>>>>>>>>> >>>>>>>>>>>>> int foo(int arg1, char arg2); >>>>>>>>>>>>> >>>>>>>>>>>>> There’s an extern present in the beginning which is hidden and >>>>>>>>>>>>> the compiler treats it as below. >>>>>>>>>>>>> >>>>>>>>>>>>> extern int foo(int arg1, char arg2); >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Oct 24, 2012 at 4:40 PM, rahul sharma < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Pleaase reply with sol as asp >>>>>>>>>>>>>> >>>>>>>>>>>>>> Fille 1: >>>>>>>>>>>>>> #include<stdio.h> >>>>>>>>>>>>>> extern int i; >>>>>>>>>>>>>> >>>>>>>>>>>>>> extern int j; >>>>>>>>>>>>>> void next(void); >>>>>>>>>>>>>> int main() >>>>>>>>>>>>>> { >>>>>>>>>>>>>> ++i; >>>>>>>>>>>>>> printf("%d",i); >>>>>>>>>>>>>> next(); >>>>>>>>>>>>>> getchar(); >>>>>>>>>>>>>> } >>>>>>>>>>>>>> int i=3; >>>>>>>>>>>>>> void next() >>>>>>>>>>>>>> { >>>>>>>>>>>>>> ++i; >>>>>>>>>>>>>> printf("%d",i); >>>>>>>>>>>>>> printf("%d",j); >>>>>>>>>>>>>> other(); >>>>>>>>>>>>>> } >>>>>>>>>>>>>> File 2: >>>>>>>>>>>>>> extern int i; >>>>>>>>>>>>>> >>>>>>>>>>>>>> void other() >>>>>>>>>>>>>> { >>>>>>>>>>>>>> ++i; >>>>>>>>>>>>>> printf("%d",i)' >>>>>>>>>>>>>> } >>>>>>>>>>>>>> >>>>>>>>>>>>>> How cum file 1 knows what is other();as we havnet define with >>>>>>>>>>>>>> extern void other(); >>>>>>>>>>>>>> it should be error???? >>>>>>>>>>>>>> but when i include the statemetn extern void other,then also >>>>>>>>>>>>>> it shows?? >>>>>>>>>>>>>> pls provide me o/p of this questiona nd also tell how use use >>>>>>>>>>>>>> variable of one file in other as simply writing extern in a is >>>>>>>>>>>>>> not accesing >>>>>>>>>>>>>> global a of other file.... >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>>>> Google Groups "Algorithm Geeks" group. >>>>>>>>>>>>>> To post to this group, send email to >>>>>>>>>>>>>> [email protected]. >>>>>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>>>>> [email protected]. >>>>>>>>>>>>>> For more options, visit this group at >>>>>>>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>>> Google Groups "Algorithm Geeks" group. >>>>>>>>>>>>> To post to this group, send email to >>>>>>>>>>>>> [email protected]. >>>>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>>>> [email protected]. >>>>>>>>>>>>> For more options, visit this group at >>>>>>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "Algorithm Geeks" group. >>>>>>>>>>> To post to this group, send email to [email protected]. >>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>> [email protected]. >>>>>>>>>>> For more options, visit this group at >>>>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *RAHUL KUMAR DUBEY* >>>>>>>>>> *BTech-3rd year * >>>>>>>>>> *Computer Science &Engineering * >>>>>>>>>> *Motilal Nehru National Institute Of Technology* >>>>>>>>>> *Allahabad[211004],UP.* >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "Algorithm Geeks" group. >>>>>>>>>> To post to this group, send email to [email protected]. >>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>> [email protected]. >>>>>>>>>> For more options, visit this group at >>>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Algorithm Geeks" group. >>>>>>>>> To post to this group, send email to [email protected]. >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> [email protected]. >>>>>>>>> For more options, visit this group at >>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Algorithm Geeks" group. >>>>>>>> To post to this group, send email to [email protected]. >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> [email protected]. >>>>>>>> For more options, visit this group at >>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Algorithm Geeks" group. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> To unsubscribe from this group, send email to >>>>>>> [email protected]. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Algorithm Geeks" group. >>>>>> To post to this group, send email to [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *RAHUL KUMAR DUBEY* >>>>> *BTech-3rd year * >>>>> *Computer Science &Engineering * >>>>> *Motilal Nehru National Institute Of Technology* >>>>> *Allahabad[211004],UP.* >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Algorithm Geeks" group. >>>>> To post to this group, send email to [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Algorithm Geeks" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]. >>>> For more options, visit this group at >>>> http://groups.google.com/group/algogeeks?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Algorithm Geeks" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/algogeeks?hl=en. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
