課題48


  1. 1 から 100 までの合計を求めるプログラムを作ります。

  2. 次の3つのソースファイルを、 それぞれ kadai48a.c kadai48b.c kadai48c.c として作成してください。

    kadai48a.c
    extern int sum;       /* どこか他で宣言されている変数 */
    extern int inc(void); /* どこか他で宣言されている関数 */
    
    void goukei(int n)
    {
        do {
          sum += inc();
        }
        while (--n > 0);
    }
    

    kadai48b.c
    int sum;
    
    int inc(void)
    {
        return ++sum;
    }
    

    main.c
    int sum; /* 共有しようとする変数の宣言 */
    
    int main(void)
    {
        sum = 0;
        goukei(100);
        printf("合計は %d\n", sum);
    
        return 0;
    }
    

  3. このプログラムを次のようにしてコンパイル/リンクしてください。
    cc kadai48a.c kadai48b.c kadai48c.c -o kadai48
    
  4. このプログラムはリンクの際に警告を表示します。 また正常には動作しません。

  5. この3つのプログラムのうちのどれかひとつに static を1箇所だけ 書き加えて、正常に動作するように修正してください。

  6. 修正したプログラムをメールで tokoiまで送ってください。 Subject: は kadai48 としてください。