構造体の基本-2

「構造体の基本」の続きです。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. コンパイルでエラーになった Main.c のファイル名を Main.cpp に変更してみました。
    前回エラーになった形式 構造体の基本 がファイル名の拡張子を cpp に変更すると通るようになります。 (^◇^;)
    struct  TData   data;   //OK
    TData   data;           //OK
    
    /*★ 構造体(struct) のテスト  Main.cpp    前田 稔 ★*/
    #include <stdio.h>
    #include <conio.h>
    
    struct  TData
    {
        int     v1;
        int     v2;
        int     sum;
    };
    
    struct  TData   data;   //OK
    //TData   data;           //OK
    
    int main(void)
    {
        data.v1 = 30;
        data.v2 = 40;
        data.sum= data.v1 + data.v2;
        printf("data.v1= %d,  data.v2= %d,  data.sum= %d\n", data.v1, data.v2, data.sum);
        _getch();
        return 0;
    }
    
  2. 構造体の定義と同時に、初期値を設定してみました。 \(^o^)/
    初期値は、構造体で定義されているアイテムの順番どおりに指定しなければなりません。
    この機能を使えばウインドウを生成するソースコードが非常に短くなります。
    /*★ 構造体(struct) のテスト  Main.cpp    前田 稔 ★*/
    #include <stdio.h>
    #include <conio.h>
    
    struct  TData
    {
        int     v1;
        int     v2;
        int     sum;
    };
    TData   data= { 30, 40, 0 };
    
    int main(void)
    {
        data.sum= data.v1 + data.v2;
        printf("data.v1= %d,  data.v2= %d,  data.sum= %d\n", data.v1, data.v2, data.sum);
        _getch();
        return 0;
    }
    
  3. ウインドウを生成するソースコードです。
    WNDCLASS wc はウインドウを生成するためのパラメータを設定する構造体です。
    HINSTANCE   g_hInst;
    HWND        g_hWnd;
    
    //★ Windows Main 関数
    int APIENTRY  WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int nCmdShow)
    {   MSG         msg;
    
        g_hInst= hInst;
        WNDCLASS wc = { CS_CLASSDC,WndProc,0L,0L,hInst,NULL,LoadCursor(NULL,IDC_ARROW),
                        (HBRUSH)GetStockObject(WHITE_BRUSH),NULL,NAME };
        if (RegisterClass(&wc)==0)    return FALSE;
    
        g_hWnd= CreateWindow(NAME,TITLE,WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT,CW_USEDEFAULT,400,200,
                NULL,NULL,hInst,NULL);
        if (!g_hWnd)  return FALSE;
    
        ShowWindow(g_hWnd,SW_SHOWDEFAULT);
        UpdateWindow(g_hWnd);
        SetFocus(g_hWnd);
        while (GetMessage(&msg,NULL,0,0))
        {   TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        return S_OK;        //return 0
    }
    

超初心者のプログラム入門(C/C++)