[A-00197] Clang入門
clang(C言語)の入門用記事です。
・helloworldしてみる
helloworldプログラムを作成します。
#include <stdio.h>
int main( int args, char **argv) {
printf("Hello,world\n");
}
実行結果は下記です。
$ clang main.c
$ ls
a.out main.c output
$ ./a.out
Hello,world
・構造体を作成してみる
次は構造体を使用したプログラムを作ってみます。
ディレクトリ構造は下記の通りです。

ここではポインタの概念が出てきます。Javaなどに慣れている方は見慣れないのでポインタについて学習が必要です。関数の中で構造体を参照する際にはポインタで受け渡しが必要になります。
#ifndef PERSON_H
#define PERSON_H
#include <stdio.h>
typedef struct Person {
char name[100];
int age;
char country[100];
} Person;
void sayHello(Person*);
#endif // !PERSON_H
#define PERSON_H
#include <stdio.h>
#include "person.h"
void sayHello(Person* p) {
printf("Hello, My name is %s.\n", p->name);
printf("I'm %d years old now.\n", p->age);
printf("I'm live in %s.\n", p->country);
}
#include <stdio.h>
#include "strct/person.c"
int main( int args, char **argv) {
printf("Hello,world\n");
Person p = {"satoshi", 14, "Japan"};
sayHello(&p);
}
実行すると下記のようになります。
$ clang main.c
$ ls
a.out main.c output strct
$ ./a.out
Hello,world
Hello, My name is satoshi.
I'm 14 years old now.
I'm live in Japan.
・Appendix
参考文献はこちら
https://qiita.com/nkojima/items/a10cd943ed66e0cea7fd
https://qiita.com/nkojima/items/40a1101f2f6f5800bc2d
https://www.cc.kyoto-su.ac.jp/~yamada/programming/string.html
コメントを残す