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) ;}