C言語入門/復習 - 長岡技術科学大学

C言語入門/復習
長岡技術科学大学
電気電子情報工学専攻
出川智啓
C言語とは
Q C言語とは何ですか?
A プログラムを作成するための人工的な言語(プログラミン
グ言語)の一つです.
Q C言語は難しいですか?
A 極めて難しいです.
Q なぜC言語を使うのですか?
A C言語を覚えると他のプログラミング言語も使えるように
なるからです.
2
GPGPU実践基礎工学
2015/09/30
C言語とは
高級言語のような低級言語


人間に(比較的)理解しやすく,コンピュータのハードウェアも
制御できる
高級言語



人間には理解しやすい
コンピュータには理解しにくい
低級言語



3
人間には理解しにくい
コンピュータには理解しやすい
GPGPU実践基礎工学
2015/09/30
プログラムの作製手順
1.
処理する内容をC言語で書く

C言語で書かれたテキストファイルが作られる


2.
処理する内容をコンピュータが理解できる言葉に変換



この行為をコンパイルと呼ぶ
コンパイルするプログラムをコンパイラと呼ぶ
コンパイルの結果,コンピュータが理解できる言葉で書かれた
ファイルが作られる

4
ソースファイル,プログラムソース,単純にソースなどと呼ぶ
ファイル名の末尾は.c
実行ファイル,実行形式,プログラムなどと呼ぶ
GPGPU実践基礎工学
2015/09/30
C言語の最も簡単なプログラム
main(){}
C言語で書かれたプログラム



5
main()の直後にある { } の中に書かれた処理を実行
何も書かれていないので,実行しても何も起こらない
GPGPU実践基礎工学
2015/09/30
C言語の処理の単位
文



処理の最小単位
3種類の文




変数宣言
演算
関数の呼出
文はセミコロン(;)で終わる
関数(functionの日本語訳,機能と捉えた方が自然)



6
処理の大きな単位
複数の文を記述してまとまった処理を実行
GPGPU実践基礎工学
2015/09/30
画面にHello Worldと表示するプログラム
関数
文(関数呼出)
プログラム本体
main(){
printf("hello world¥n");
プログラムを書く
=処理を書いてmain関数
を作る
}
main関数はプログラム実行時に最初に呼び出される特
別な関数


7
printfは括弧の中に書かれた文字を画面に表示する関数
GPGPU実践基礎工学
2015/09/30
C言語のルール
文の終わりはセミコロン


コンパイルエラーが出たらまずセミコロンの有無を確認
改行やスペースは(文法上)重要な意味を持たない

main(){
printf("hello world¥n");
}
main(
)
{
printf(
"hello world¥n"
);
}
コンピュータは同じプログラムと判断
8
GPGPU実践基礎工学
2015/09/30
C言語のルール
改行やスペースは(文法上)重要な意味を持たないが...


人間に読みやすくするためにスペースや改行を活用しましょう


中括弧{}の中に処理を書くときは字下げ(インデント)する
まとまった処理の前後に改行を入れる 等
注釈(コメント)の付け方


/* と */の間に書く


// の後ろに書く

9
複数行にわたるコメントを書くことができる
1行コメント
GPGPU実践基礎工学
2015/09/30
実際に書いてコンパイルしてみよう
main(){
printf("hello world¥n");
}

コンパイルの方法




ccという名前のプログラム(コンパイラ)を使う
cc˽ソースファイル名
コンパイルに成功するとa.outという名前の実行ファイルが作
られる
実行の方法

10
./a.out
GPGPU実践基礎工学
2015/09/30
コンパイルエラーの内容

関数printfの内容が分からない

printfを使うためには,printfの中でどういう処理を
行うかが書かれたファイルを読み込む必要がある

stdio.hというファイルにprintfの処理内容が書かれている


標準入出力ヘッダ:standard input/output header
stdio.hファイルを読み込むには


#incluce命令を利用
#include<stdio.h>

11
#incluce<stdio.h>はおまじない(charm)と書いてある本が多い
GPGPU実践基礎工学
2015/09/30
実際に書いてコンパイルしてみよう
/*******************************************************
* 画面にhello worldと表示するプログラム
*******************************************************/
#include<stdio.h> //おまじないではなく,printfを使うために必要
main(){
printf("hello world¥n");
}
12
GPGPU実践基礎工学
2015/09/30