C言語・C++

ガイド

インストール

Mac, Cling

brew install cling

Cling REPLでの変数定義と書き換え

void maths() {
    int a = 1;
    int a = 2;
}
void maths() {
    int a;
    a = 1;
    a = 2;
}

printf long longでワーニングを回避する

long long i;
printf("node %lld", i);

構造体のメンバーの文字列に値を渡すstrcpy

strcpyを使う.

typedef struct Person {
    char name[20];
     int sex;
  // char sex;
     int age;
  double height;
  double weight;
} person_s;

person_s p;

person_s p;
strcpy(p.name, "Tom");
p.sex  = 0;

配列の動的な定義

+BEGIN_EXAMPLE

int yms; yms = (int )calloc(row_num * sizeof(int), sizeof(int));

+END_EXAMPLE

配列を関数に渡すとき

C言語では関数の引数で「配列そのもの」を受け取れないため, 配列の先頭のアドレスを受け渡す. 配列の要素数は別途引数を用意して受け渡さないと, 関数内で配列の要素数を知るすべがない.

配列数のマクロを作っておくと便利らしい.

+BEGIN_EXAMPLE

define COUNTOF(array) (sizeof(array) / sizeof(array[0]))

+END_EXAMPLE

文字列切り出し

sprintf(dst, "%.4s", src);

文字列初期化

char c[11] = "";

文字列比較strcmp

if (strcmp(a, b) == 0) {
    printf("same\n");
} else {
    printf("different\n");
}

ポインタの使い方