2021年度 : 毎年、各自のプログラミング環境によって作業が異なります。今年は、特に、違いそう。そこで、一番基本的な方法でやります。
<背景> 「大きなプログラムを分けて作りたい」「プログラムを共有したい(再利用したい)」「一部の関数のみを修正しているので、そこだけをコンパイルしなおしたい」
#define _CRT_SECURE_NO_WARNINGS
を追加してください
<1> 3つのファイルを用意します。 (作っている関数のグループごとに、いくつかのファイルに分けます) swap.h swap.c main.c
とします。
ファイル1:swap.h /* ヘッダーファイルと呼びます 共通情報を書きます */ #include <stdio.h> void swap (int *x, int *y); ファイル2: swap.c /* swap関数の本体 */ #include "swap.h" /* ヘッダファイルをインクルード */ void swap(int *x, int *y) { int tmp; tmp = *x; *x = *y; *y = tmp; } ファイル3:main.c /* swap関数を呼び出す関数。main関数だけ */ #include "swap.h" /* ヘッダファイルをインクルード */ int main (void) { int a, b; printf("a = "); scanf("%d", &a); printf("b = "); scanf("%d", &b); printf ("BEFORE : a = %3d, b = %3d \n", a, b); swap(&a, &b); printf (" AFTER : a = %3d, b = %3d \n", a, b); return (0); }
<2> 分割コンパイルします。
Visual Code班、 UNIXの皆さん
以下、VCのターミナルで行う典型的な作業例
ls
(swap.h, swap.c, main.c が、このディレクトリにあることを確認しよう)
gcc -c swap.c (swap.cだけ、コンパイルしよう。swap.oというファイルが生成。lsで確認してみよう) gcc -c main.c (もう1つ、コンパイル。main.oというファイルが生成。lsで確認) gcc -o 1102 swap.o main.o (2つのオブジェクトファイルをリンクして、1102という実行ファイルを作成。lsで、確認をどうぞ。1102.exeができているはず)./1102(パワーシェルではこの記法ではダメ。コマンドプロンプトならOK ./1102.exe (では、実行。./をお忘れなく。スペースはどこにもいれない。./は、ここにある、と 場所を指定(相対パス指定) しています)
解答例#include <stdio.h>void swap (int *x, *y);int main (void) { int a, b, tmp; printf("a = "); scanf("%d", &a); printf("b = "); scanf("%d", &b); printf ("BEFORE : a = %3d, b = %3d \n", a, b); swap(&a, &b); printf (" AFTER : a = %3d, b = %3d \n", a, b); return (0);}void swap(int *x, int *y) {}~
Visual Studio の皆さん。この授業では、C言語を使用してください。