K&Rを読もう(21) 2-1 変数名

今日から2章に入ります。2章からは本格的に文法を扱っていくようです。

文法ってとにかく面倒で大嫌いなんですが、C言語の文法をしっかり学んだ事が無いので飛ばさず学んでいきたいと思います。

これからお世話になりそうだからな・・・。

変数名

「内部名では最初の31文字が意味を持つ。」と書いてあるがイマイチよくわからず。

  • 32文字以上の変数名が持てるのか?
  • 32文字以上でも変数名が区別されるのか?

という疑問が湧いたので実験してみる。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int hooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooge = 0;
    int hooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooe = 1;
    printf("%d\n", hooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooge);
    printf("%d\n", hooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooe);

    exit(EXIT_SUCCESS);
}

画面いっぱいまで変数名を伸ばしてみたけどエラーにはならず。また、32文字以上の変数名でもちゃんと区別される。

ただ、長い関数名を付けるとリンカ回りで不具合が起こりそうな気がする。objファイルの仕様を調べなくては・・・・。