• 検索結果がありません。

復習 C プログラムの作成と実行

ドキュメント内 新潟大学学術リポジトリ (ページ 51-54)

基礎知識

• Cプログラムのソースファイルの拡張子は.c です。

44 2. 実習案内 Cプログラミング環境

• Cコンパイラを起動するコマンドは cc またはgcc です。(使い方はmanコマンドで 調べることが出来ます。)

• 何も指定しないと、コンパイル結果はa.out というファイルに生成されます。

Cプログラム作成・実行の手順 例えば、次の様にします。

(1) Cプログラミング用のディレクトリを用意し、そこに移る。

(2) 仮想端末(例えばgnome-terminal)ウィンドウ上で emacs ファイル名& とコマンド 入力する。

(但し、Cプログラムのファイル名は .cで終わる様にする。)

(3) Emacsウィンドウと仮想端末ウィンドウの大きさ/位置を調整して画面を見易くす

る。 (できればウィンドウが重ならない様にする。)

(4) Emacsエディタの下でプログラムを作成(または修正)・保存する。

(Emacsエディタはまだ終了しない。)

(5) 仮想端末ウィンドウをアクティブ状態にする。

(6) gcc ソースファイル名 または cc ソースファイル名 とコマンド入力してプログ ラムをコンパイルする。

a.outに実行ファイルが出来る。 ccコマンド/Cコン パイラについては2.5節を参照。

!

(7) コンパイラからのエラーメッセージがある間は次の∼1 を繰り返し行う。3

1 エラーメッセージを手掛かりにソースプログラム内の文法的な誤りを見つけ、

Emacsウィンドウ上で修正する。

2 Ctrl-x Ctrl-s とキーを押すことによってソースファイルを更新する。

3 再度プログラムをコンパイルする。

(8) コンパイルが無事(i.e. エラー無しで)終了したら、a.out とコマンド入力してプロ グラムを実行する。

プログラムが終了しない場合は Ctrl-cキーを押して強 制終了させる。

!

(9) 実行結果に満足できない場合は、次の∼1 を順に行った後にステップ3 (7)に戻る。

1 プログラムの誤り箇所を突き止め、Emacs ウィンドウ上で修正する。[誤り箇所 が分からない場合は、デバッガ(第6節)を用いてプログラムの実行追跡を行った りする。]

2 Ctrl-x Ctrl-s とキーを押すことによってソースファイルを更新する。

3 再度プログラムをコンパイルする。

(10) プログラムが正しく動作することが確認されたら、おしまい。

例 2.1 (x/y の小数点以下切り上げ) プログラム表示/コンパイル/実行の様子を次に示

す。(下線部はキーボードからの入力を表す。)

2.2. 復習 Cプログラムの作成と実行 45

motoki@ap1:~/C-java$ cat lab-ex01-ceiling.c Enter

#include <stdio.h>

int main(void) {

int x, y, sum, ceiling;

scanf("%d %d", &x, &y);

sum = x+y;

ceiling = x/y + (x%y + y - 1)/y; /* x/y の小数点以下切り上げ */

printf("%d+%d=%d\n", x, y, sum);

printf("ceiling(%d/%d)=%d\n", x, y, ceiling);

return 0;

}

motoki@ap1:~/C-java$ gcc lab-ex01-ceiling.c Enter motoki@ap1:~/C-java$ ./a.out Enter

8 3 Enter 8+3=11

ceiling(8/3)=3

motoki@ap1:~/C-java$

プログラム作成の際に有用なキー/コマンドを次に紹介しておきます。

Emacsの下でのCプログラム作成 Emacsの下でCプログラム(i.e. .c という 名前のファイル)を編集する時は、次のようなキーを使うと字下げが楽に出来ます。

Ctrl-j · · · 改行してから次の行の字下げを行う。(newline-and-indent) TAB · · · カーソルのある行の字下げ(調節)を行う。(c-indent-line)

Esc Ctrl-\ · · · 指定されたリージョンの字下げ(調節)を行う。リージョン指

定は予め行っておく。(indent-region)

Cプログラムの整形 デバッグしている内に字下げの仕方がめちゃくちゃになりCプ ログラムが見にくくなった場合にCプログラムを整形・表示してくれる次のUNIX コマ ンドが役立つことがありますが、実習室の計算機にはインストールされていない様です。

形式:

indent

[options] [file-name]

options: -kr KernighanとRitchie のスタイルで整形 -gnu GNUプロジェクトのスタイルで整形 -origs BSDのindent互換スタイルで整形

-inum 字下げ幅をnumとして整形

Cプログラムに行番号を付ける gdbデバッガを使う際等に、プログラム内で途中結果 を観察する場所の行番号が必要になることがあります。こんな時には、文書ファイルに行 番号を付けて表示する次のUNIXコマンドが役に立ちます。(gdbデバッガの参考のため に使う場合は -b a というオプションを付けて実行する。catコマンドを -n オプション

46 2. 実習案内 Cプログラミング環境

付きで実行してもよい。)

形式:

nl

[options] [file-name]

options: -b type どの行に番号を付けるかを指定します。

指定できるtypeとその意味は次の通り 。 a · · · 全行に番号付け。

t · · · 印書可能なテキストのある行だけに番号付け。(デフォルト) n · · · 番号づけをしません。

p exp · · · expという正規表現パターンを含む行だけに番号付け。

その他 オンラインマニュアルを御覧下さい。(man nl)

ドキュメント内 新潟大学学術リポジトリ (ページ 51-54)