hello to all members,
i have strange question in C.
main()
{
printf("%d",mai n) ;
}
here o/p is same for all m/c in TC++ version 3.0 i.e 657.
I think this is not garbage.
what u think??
plz reply.
Nov 14 '05
11 6917
Groovy hepcat Christopher Benson-Manica was jivin' on Tue, 23 Dec 2003
22:02:38 +0000 (UTC) in comp.lang.c.
Re: main return value stange question's a cool scene! Dig it! Mike Wahler <mk******@mkwah ler.net> spoke thus:
main() { printf("%d",mai n) ; } The behavior of the above program is undefined.
Of course - the challenge is to enumerate all the different ways it can explode :) I'll give it a shot...
1) main() will work fine on a C89 implementation, but will be rejected by a mythical C99 implementation. Yes?
If you mean the declaration of main() without specifying the return
value (relying on implicit int), then yes.
2) There is no newline in the printf. 3) Implicitly casting main's function pointer (is that what it is in that context?) to an int.
Nope. That's not happening here. The function designator, main, is
converted to a pointer to function, and this is passed to printf().
This is then treated as if it were an int (but is never cast, either
implicitly or explicitly, to anithing). I think that's what you meant.
The behaviour is undefined.
4) Nothing is returned, which is fine for C99 but not C89... right?
Not exactly. Something is returned, but in C90 it is an
indeterminate value.
5) stdio.h wasn't included (in the post itself, at least)
Right; so there is no prototype for printf(). Calling a var args
function without a prototype causes undefined behaviour.
Does the behavior improve if the program is changed to
#include <stdio.h>
int main() { printf( "%p\n", (void *)main ); return EXIT_SUCCESS; }
Yes. Now we know it won't compile, since EXIT_SUCCESS is an
undeclared identifier. (Well, strictly speaking, in theory, we don't
know anithing except that a diagnostic will be produced. What happens
next is undefined. But in the real world, a compiler will cease
compilation.)
--
Dig the even newer still, yet more improved, sig! http://alphalink.com.au/~phaywood/
"Ain't I'm a dog?" - Ronny Self, Ain't I'm a Dog, written by G. Sherry & W. Walker.
I know it's not "technicall y correct" English; but since when was rock & roll "technicall y correct"?
Peter "Shaggy" Haywood <sh****@austral is.net.stop.spa m> spoke thus: Yes. Now we know it won't compile, since EXIT_SUCCESS is an undeclared identifier.
Hey, I accomplished something ;) I seem to have a terminal problem
with neglecting to include <stdlib.h> when using EXIT_SUCCESS.
--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cybers pace.org | don't, I need to know. Flames welcome. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Rhamphoryncus |
last post by:
First a bit about myself. I've been programming in python several
years now, and I've got several more years before that with C. I've
got a lot of interest in the more theoretical stuff (language design,
component architectures, etc). Of late my focus has been on concurrent
operations (and on how to design a GUI architecture, but that's not
what this post is about). I've looked at threads, and the inability to
kill them easily was a...
|
by: Steven T. Hatton |
last post by:
This is a purely *hypothetical* question. That means, it's /pretend/,
CP. ;-)
If you were forced at gunpoint to put all your code in classes, rather than
in namespace scope (obviously classes themselves are an exception to this),
and 'bootstrap' your program by instantiating a single application object
in main(), would that place any limitations on what you could accomplish
with your program? Are there any benefits to doing things that...
|
by: Bill Cunningham |
last post by:
> #include <stdlib.h>
> #include <stdio.h>
>
> int main(int argc, char *argv) {
> FILE *in, *out;
>
> if(argc==1)
> {
> in = stdin;
> out = stdout;
|
by: Seong-Kook Shin |
last post by:
Hi, I'm reading Steve's "C Programming FAQs" in book version,
and have two question regarding to Q11.16
... Also, a `return' from `main' cannot be expected to work if
data local to main might be needed during cleanup. (Finally
the two forms are obviously not equivalent in a recursive call
to `main').
My questions are
|
by: Christian Christmann |
last post by:
Hi,
the ANSI-C 99 standard specifies that the main function
has "int" as return type. However, there are still lots
of people declaring "void" as main return type.
Did previous ANSI-C standards defined "void" as return type
or is this issue just a lack of C knowledge?
Regards,
| |
by: Michal Nazarewicz |
last post by:
Hi,
What does returning 0 from main() mean according to C89/C90 standard?
I've found that in C99 it means successful termination (7.20.4.3p5)
however as I'm editing book on C at Polish Wikibooks I'd like to know
what C89/C90 says about it - quotation from C89 or C90 would be nice.
Moreover, in C99 main() function is somewhat special because lack of
return statement is equivalent with returning zero (5.1.2.2.3p1). Is
it also the case...
|
by: Army1987 |
last post by:
Is that in the object line a conforming program?
If so, why?
If not, why?
I'd expect it to be much like
int main(void)
{
for (;;);
}
But if I compile it with lcc-win32 and run it in its rundos.exe, it says the
|
by: junky_fellow |
last post by:
Guys,
Can I return 0, from main() ? Is this equivalent to
exit(EXIT_SUCCESS) ?
thanks for any help...
|
by: aarklon |
last post by:
Hi all,
I have heard many discussions among my colleagues that main is a user
defined function or not.
arguments in favour:-
1) if it is built in function it must be defined in some header file
but it is n't.
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |