[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

https://qiita.com/RikuMoto/items/28e1083fc182efb09a50

https://qiita.com/niwasawa/items/d878eb7175ee9c3002be

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*