Hey, I guess , there is no defined order in which the function values are evaluated .. Plz check this link ... http://stackoverflow.com/questions/376278/parameter-evaluation-order-before-a-function-calling-in-c/376288#376288...
I think we should clear our concept on this part .... However, you can also go through this link http://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviour-that-a-c-programmer-should-know-abo Correct me if i am wrong Rabi C Shah IIITA On Sat, Jul 23, 2011 at 12:43 AM, geek forgeek <[email protected]>wrote: > @nicks -- ur code for 1st problem is giving me 1 not -1 on gcc..which > compiler are you using > > > On Fri, Jul 22, 2011 at 11:58 AM, sumit <[email protected]> wrote: > >> +1 to t3rminal >> >> >> On Jun 12, 11:38 pm, T3rminal <[email protected]> wrote: >> > @all >> > Stop guessing and making your own standards. C standards haven't >> > defined anything (though in gcc arguments are processed from left to >> > right) about processing arguments in a function call. And sentence >> > like "assgnment to a preincrement expression is delayed vry mch...." >> > have no meaning . Seriously which book have you referred. >> > This all fall in category of UNDEFINED BEHAVIOR. >> > If a value of a variable is changed more than once between two >> > sequence points, it give rises to side-effect which lead to undefined >> > behavior. >> > There is no explanation for this output supported by C standards. >> > On Jun 12, 8:14 pm, varun pahwa <[email protected]> wrote: >> > >> > >> > >> > >> > >> > >> > >> > > yes the output is compiler dependent. >> > >> > > On Sun, Jun 12, 2011 at 6:35 AM, nicks <[email protected]> >> wrote: >> > > > but program by anika is giving *7 6 8* on gcc.....but *7 6 6 *on >> > > > dev-cpp...........i am wondering if the output is compiler dependent >> !! >> > >> > > > On Sun, Jun 12, 2011 at 6:33 AM, nicks <[email protected]> >> wrote: >> > >> > > >> no it's >> > > >> a=1 b=1 >> > > >> i=2 >> > >> > > >> i ran it on gcc (linux ubuntu 11.04) >> > >> > > >> On Sun, Jun 12, 2011 at 6:26 AM, sanjay ahuja < >> [email protected] >> > > >> > wrote: >> > >> > > >>> with GCC the above code gives a = 1 and b = 2 >> > >> > > >>> On Sun, Jun 12, 2011 at 6:39 PM, nicks < >> [email protected]> >> > > >>> wrote: >> > > >>> > @himanshu....what abt this ?? >> > >> > > >>> > #include<stdio.H> >> > > >>> > # include <conio.h> >> > > >>> > int i=2; >> > > >>> > main() >> > > >>> > { >> > > >>> > void add(); >> > > >>> > add(i++,--i); >> > > >>> > printf("\ni=%d \n",i);system("pause"); >> > > >>> > } >> > > >>> > void add(int a ,int b) >> > > >>> > { >> > > >>> > printf("\na=%d b=%d",a,b); >> > > >>> > } >> > >> > > >>> > OUTPUT - >> > > >>> > a=1 b=1 >> > > >>> > i=2 >> > >> > > >>> > acc. to ur logic output should be - >> > > >>> > a=1 b=2 >> > > >>> > i=2 >> > >> > > >>> > On Sun, Jun 12, 2011 at 5:42 AM, Anika Jain < >> [email protected]> >> > > >>> wrote: >> > >> > > >>> >> thanks himanshu finally i got the reason!! >> > > >>> >> :) >> > >> > > >>> >> On Sun, Jun 12, 2011 at 5:59 PM, himanshu kansal >> > > >>> >> <[email protected]> wrote: >> > >> > > >>> >>> @anika:cz on gcc arguemnts r eval frm right to left and >> assgnment to >> > > >>> a >> > > >>> >>> pre increment expression is delayed vry mch.... >> > > >>> >>> so on eval frm right to left.... >> > > >>> >>> frst a is incremented...(6) bt remember d new value is nt >> pushed on >> > > >>> stack >> > > >>> >>> till nw....(cz assgnmnt is delayed) >> > > >>> >>> thn next value is 6...nd thn a is incremented.....here being a >> post >> > > >>> >>> increment op....assgnmnt is made 1st (2nd arg to fun is 6)and >> a is >> > > >>> >>> incrementd to 7.... >> > > >>> >>> simalrly.....assgnmnt is made(1st arg is 7) and a is >> incremnted to >> > > >>> 8..... >> > > >>> >>> nw d assgnmnt is made to the 3rd arg(d assgnmnt whch ws >> delayed till >> > > >>> >>> nw).....hence 3rd arg becomes 8..... >> > > >>> >>> so it prints 7 6 8...... >> > >> > > >>> >>> On Sun, Jun 12, 2011 at 5:33 PM, Anika Jain < >> [email protected]> >> > > >>> >>> wrote: >> > >> > > >>> >>>> can anybody explain that in following code y output is coming >> to be: >> > > >>> 7 6 >> > > >>> >>>> 8 >> > >> > > >>> >>>> void call(int a,int b,int c) >> > > >>> >>>> { >> > > >>> >>>> printf("%d %d %d",a,b,c); >> > > >>> >>>> } >> > >> > > >>> >>>> int main() >> > > >>> >>>> { >> > > >>> >>>> int a=5; >> > > >>> >>>> call(a++,a++,++a); >> > > >>> >>>> return 0; >> > > >>> >>>> } >> > >> > > >>> >>>> On Sat, Jun 11, 2011 at 8:21 PM, PRAMENDRA RATHi rathi >> > > >>> >>>> <[email protected]> wrote: >> > >> > > >>> >>>>> IN second program: >> > > >>> >>>>> in function value are always push in the stack from right. >> > > >>> >>>>> so first value is --i that will make i=1 and value 1 will be >> passed >> > > >>> to >> > > >>> >>>>> function >> > > >>> >>>>> and >> > > >>> >>>>> after that i++ that's means i will be passed. >> > > >>> >>>>> so 1 will be passed and after passing value. i will changed >> to 2. >> > >> > > >>> >>>>> if u want to know why reverse order than can go through: >> > >> > > >>> >>>>>http://cs.nyu.edu/courses/fall03/V22.0201-003/c_param.html >> > > >>> >>>>> ----------------------------------------- >> > > >>> >>>>> PRAMENDRA RATHI >> > > >>> >>>>> NIT ALLAHABAD >> > >> > > >>> >>>>> On Sat, Jun 11, 2011 at 7:28 PM, Vishal Thanki < >> > > >>> [email protected]> >> > > >>> >>>>> wrote: >> > >> > > >>> >>>>>> In 1st program, 2nd printf requires one more argument. And >> > > >>> basically >> > > >>> >>>>>> %a is used for printing a double value in hex. see "man 3 >> printf". >> > >> > > >>> >>>>>> On Sat, Jun 11, 2011 at 5:29 PM, nicks < >> > > >>> [email protected]> >> > > >>> >>>>>> wrote: >> > > >>> >>>>>> > Hello friends..plz help me in understanding the following >> C >> > > >>> Output >> > >> > > >>> >>>>>> > first one is -- >> > >> > > >>> >>>>>> > #include<stdio.h> >> > > >>> >>>>>> > #include<conio.h> >> > > >>> >>>>>> > main() >> > > >>> >>>>>> > { >> > > >>> >>>>>> > int a=5; >> > > >>> >>>>>> > printf("a=%d\n",a); >> > > >>> >>>>>> > printf("%a=%d",a); >> > > >>> >>>>>> > getch(); >> > > >>> >>>>>> > } >> > > >>> >>>>>> > OUTPUT - >> > > >>> >>>>>> > a=5 >> > > >>> >>>>>> > 0x1.2ff380p-1021=4199082 >> > >> > > >>> >>>>>> > and the other one is -- >> > >> > > >>> >>>>>> > #include<stdio.H> >> > > >>> >>>>>> > # include <conio.h> >> > > >>> >>>>>> > int i=2; >> > > >>> >>>>>> > main() >> > > >>> >>>>>> > { >> > > >>> >>>>>> > void add(); >> > > >>> >>>>>> > add(i++,--i); >> > > >>> >>>>>> > printf("\ni=%d \n",i);system("pause"); >> > > >>> >>>>>> > } >> > > >>> >>>>>> > void add(int a ,int b) >> > > >>> >>>>>> > { >> > > >>> >>>>>> > printf("\na=%d b=%d",a,b); >> > > >>> >>>>>> > } >> > >> > > >>> >>>>>> > OUTPUT - >> > > >>> >>>>>> > a=1 b=1 >> > > >>> >>>>>> > i=2 >> > >> > > >>> >>>>>> > -- >> > > >>> >>>>>> > 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. >> > >> > > >>> >>> -- >> > >> > > >>> >>> Regards >> > > >>> >>> Himanshu Kansal >> > > >>> >>> Msc Comp. sc. >> > > >>> >>> (University of Delhi) >> > >> > > >>> >>> -- >> > > >>> >>> 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. >> > >> > > >>> -- >> > > >>> Sanjay Ahuja, >> > > >>> Analyst, Financing Prime Brokerage >> > > >>> Nomura Securities India Pvt. Ltd >> > >> > > >>> -- >> > > >>> 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. >> > >> > > -- >> > > Varun Pahwa >> > > B.Tech (IT) >> > > 7th Sem. >> > > Indian Institute of Information Technology Allahabad. >> > > Ph : 09793899112 ,08011820777 >> > > Official Email :: [email protected] >> > > Another Email :: [email protected] >> > >> > > People who fail to plan are those who plan to fail. >> >> -- >> 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.
