"Helloworld" is not simple

Source: Internet
Author: User
The first example of a C program started with TheCProgrammingLanguage, a classic tutorial by Kernighan and Ritchie, is to print a simple "helloworld ". Since then, "helloworld" is The first C program example to describe a simple "hello world" written by a person in The book of The C Programming Language, a classic tutorial written by Kernighan and Ritchie ". Since then, "hello world" has become synonymous with describing a person's first program-no matter what language technology, even if the program does not actually output the word "hello world" on the words.

This "hello world" program is scary for beginners. He will think, "I must be very stupid, and it's hard to get started with the hello world program. In this way, I will not like programming ."

In fact, the reason for this problem is that we confuse the "first" with the "simplest. The "hello world" program can be any program with no difficulty restrictions. When you program for the first time, you don't know which compiler to use, where code files should be stored, and what format they should be. You need to learn. A lot of knowledge needs to be learned and learned slowly before you can really Program.

When I first started learning programming, I always wanted to jump over the "hello world" program writing stage as soon as possible, hoping to immediately start programming really useful programs. But in fact, I found that I have been writing the "hello world" program for most of my life and cannot see the end.

Whenever we talk about the "hello world" program, we can hardly avoid talking about the most terrible "hello world" program in the world: charles Petzold described the first Windows program in his book Programming Windows. I can only find this book for Windows 98. I don't know how different it is from the original version, but I think the code in the original version is worse than the current one.

/*------------------------------------------------------------   HELLOWIN.C -- Displays "Hello, Windows 98!" in client area                 (c) Charles Petzold, 1998  ------------------------------------------------------------*/  #include  LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;  int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                    PSTR szCmdLine, int iCmdShow){     static TCHAR szAppName[] = TEXT ("HelloWin") ;     HWND         hwnd ;     MSG          msg ;     WNDCLASS     wndclass ;       wndclass.style         = CS_HREDRAW | CS_VREDRAW ;     wndclass.lpfnWndProc   = WndProc ;     wndclass.cbClsExtra    = 0 ;     wndclass.cbWndExtra    = 0 ;     wndclass.hInstance     = hInstance ;     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;     wndclass.lpszMenuName  = NULL ;     wndclass.lpszClassName = szAppName ;       if (!RegisterClass (&wndclass))     {          MessageBox (NULL, TEXT ("This program requires Windows NT!"),                      szAppName, MB_ICONERROR) ;          return 0 ;     }            hwnd = CreateWindow (szAppName,                  // window class name                          TEXT ("The Hello Program"), // window caption                          WS_OVERLAPPEDWINDOW,        // window style                          CW_USEDEFAULT,              // initial x position                          CW_USEDEFAULT,              // initial y position                          CW_USEDEFAULT,              // initial x size                          CW_USEDEFAULT,              // initial y size                          NULL,                       // parent window handle                          NULL,                       // window menu handle                          hInstance,                  // program instance handle                          NULL) ;                     // creation parameters            ShowWindow (hwnd, iCmdShow) ;     UpdateWindow (hwnd) ;            while (GetMessage (&msg, NULL, 0, 0))     {          TranslateMessage (&msg) ;          DispatchMessage (&msg) ;     }     return msg.wParam ;}  LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){     HDC         hdc ;     PAINTSTRUCT ps ;     RECT        rect ;            switch (message)     {     case WM_CREATE:          PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;          return 0 ;                 case WM_PAINT:          hdc = BeginPaint (hwnd, &ps) ;                      GetClientRect (hwnd, &rect) ;                      DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,                    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;                      EndPaint (hwnd, &ps) ;          return 0 ;                 case WM_DESTROY:          PostQuitMessage (0) ;          return 0 ;     }     return DefWindowProc (hwnd, message, wParam, lParam) ;}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.