Ignore last to last mail. Sorry. Do show expanded content in last mail. On 16 Nov 2012 23:49, "Neeraj Gangwar" <y.neeraj2...@gmail.com> 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 <rahul23111...@gmail.com>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 >> <y.neeraj2...@gmail.com>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 <rkd7...@gmail.com>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 <y.neeraj2...@gmail.com >>>> > 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 < >>>>> rahul23111...@gmail.com> wrote: >>>>> >>>>>> No...individually...dev cpp..how to compile both together??? >>>>>> >>>>>> >>>>>> On Thu, Nov 15, 2012 at 9:26 PM, Neeraj Gangwar < >>>>>> y.neeraj2...@gmail.com> 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 < >>>>>>> rahul23111...@gmail.com> 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 < >>>>>>>> rkd7...@gmail.com> 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 < >>>>>>>>> rahul23111...@gmail.com> 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 < >>>>>>>>>> rahul23111...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> Then why its not running? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Wed, Oct 24, 2012 at 6:50 PM, SHOBHIT GUPTA < >>>>>>>>>>> shobhitgupta1...@gmail.com> 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 < >>>>>>>>>>>> rahul23111...@gmail.com> 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 >>>>>>>>>>>>> algogeeks@googlegroups.com. >>>>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>>>>>> 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 algogeeks@googlegroups.com >>>>>>>>>>>> . >>>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>>>>> 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 algogeeks@googlegroups.com. >>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>>> 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 algogeeks@googlegroups.com. >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>> 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 algogeeks@googlegroups.com. >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>> 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 algogeeks@googlegroups.com. >>>>>>> To unsubscribe from this group, send email to >>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>> 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 algogeeks@googlegroups.com. >>>>>> To unsubscribe from this group, send email to >>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>> 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 algogeeks@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> algogeeks+unsubscr...@googlegroups.com. >>>>> 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 algogeeks@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> algogeeks+unsubscr...@googlegroups.com. >>>> 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 algogeeks@googlegroups.com. >>> To unsubscribe from this group, send email to >>> algogeeks+unsubscr...@googlegroups.com. >>> 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 algogeeks@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com. >> 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 algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.