GCCのC言語入門です。おさらいがてらまとめ中です。
Contents
導入
Hello World
GCC C言語を使うには、PCにgccをインストールするところから始めます。
Linuxの場合は、aptでインストールすれば良いです。
root~# apt-get install gcc
一番簡単なプログラムを書いてみましょう。
#include <stdio.h>
int main()
{
puts("Hello World!");
}
実行するためには、まずビルドする必要があります。
takk~$ gcc hello.c takk~$ ./a.out Hello World! takk~$
#include
mainも関数なので戻り値が必要です。
成功を返す場合は、0を返すようにプログラムしますが、省略しても0が返ります。
takk~$ ./a.out;echo $? Hello World! 0 takk~$
returnで1を返すように書き換えると、
#include <stdio.h>
int main()
{
puts("Hello World!");
return 1;
}
これをビルドして実行すると、
takk~$ gcc;./a.out;echo $? Hello World! 1 takk~$
$?には実行結果が格納されており、echoでそれを表示しました。
1が返りましたね。
putsは、文字列を表示してくれる関数です。
よくあるHello Worldの例ではputsではなくprintfを使ってたりしますが結果は変わりません。
確認するためputsをprintfに書き換えてみます。
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
ビルドして実行。
takk~$ gcc;./a.out;echo $? Hello World! 0 takk~$
先ほどと同じ結果ですね。
変数、型、リテラル
変数の型って聞くだけで面倒くさいですが、慣れてしまえば呼吸のように意識せずに使えます。そして意識しないからこそ、バグになるパターン多いです。
#include <stdio.h>
int main()
{
int i = -105000; /* 符号付32bit整数 */
unsigned int ui = 0xFF0055AA; /* 符号なし64bit整数 */
float f = 1.0/3; /* 単精度浮動小数点数 */
double d = 1.0/3; /* 倍精度浮動小数点数 */
char c = 'A'; /* 文字 */
char* s = "string"; /* 文字列 */
int a[] = {10,20,30}; /* 配列 */
char *v[] = {"AA","BB","CC"}; /* 文字列の配列 */
printf("i = %d (0x%0x)\n",i,i);
printf("ui = %d (0x%0x)\n",ui,ui);
printf("f = %.30g\n",f);
printf("d = %.30g\n",d);
printf("s = %s\n",s);
printf("a[1] = %d\n",a[1]);
printf("v[1] = %s\n",v[1]);
return 0;
}
実行結果です。
takk~$ gcc test.c takk~$ ./a.out i = -105000 (0xfffe65d8) ui = -16755286 (0xff0055aa) f = 0.3333333432674407958984375 d = 0.333333333333333314829616256247 s = string a[1] = 20 v[1] = BB takk~$
コメント
コメントは、/*〜*/で囲うブロックコメントと、//以降をコメントにする方法、さらに#ifで無効化する方法があります。
#include <stdio.h>
int main()
{
/*
puts("出力されません");
puts("出力されません");
puts("出力されません");
*/
puts("AAAA"); // puts("出力されません");
#if 0
puts("出力されません");
#endif
return 0;
}
出力結果です。無効になっているputsは出力されていませんね。
takk~$ ./a.out AAAA takk~$



コメント