Sender: katsu@FLAGSHIP.katsu.watanabe.name Newsgroups: fj.comp.lang.c,fj.unix Subject: Why was atmark kept off (Re: const volatile) References: From: WATANABE Katsuhiro Date: 23 Dec 2004 05:29:56 +0900 Message-ID: Organization: An individual person. User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Lines: 37 Xref: FLAGSHIP mine:463 あまりの follow-up の遅さが議論の妨げになっていたら ごめんなさい。fj.unix にクロスポストしておきます。 記事 で 吉見 隆 (tak-yoshimi@NOSWENrio.odn.ne.jp)さんいはく > 語ではないのですが、なぜCでは '@' が使われていないのか、というのが前前 > からの疑問です。 > > * 掛け算、ポインタの参照先記号、コメント記号の一部 > & 論理積とポインタ参照元記号 > とかいろいろと使いまわすのに、なぜか'@'は使われない。 > これって、何か歴史的な事情があったのでしょうか。 '@'は昔の Unix では行削除(kill character---現在の 多くの環境では ^U)として使われていました。このように 端末で特別な意味を持つ文字なので自然に使うのを避けた、 というのが私の想像です。 出荷時の設定で行削除が'@'の Unix は最近でもあるはずで、 「パスワードに'@'を含めても意図どおりのパスワードに ならないよ」という議論がどこかでありました。確か HP-UX だった気がしますが、うろおぼえで確認できません。 行削除が'@'だった時代、文字削除は'#'だったと思います。 しかしこの記憶が正しければ、こちらはプリプロセッサへの 指示として使われていますね。このことは私には説明が できません。プリプロセッサの導入は後の時代だったから でしょうか? '@'が行削除だったのはいつごろで、Unix のどのバージョン であったか、どういう端末に向けてのことだったのか等、 歴史に詳しい方の解説を期待します。 -- 渡邊克宏 http://katsu.watanabe.name