«前の日記(2005年 01月26日(Wed)) 最新 次の日記(2005年 01月28日(Fri))» 編集

日記のような何か

2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|08|09|10|11|12|
2020|01|02|03|04|06|07|08|09|10|11|12|
2021|01|02|03|04|05|07|08|10|11|12|
2022|01|02|03|04|05|06|07|08|10|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

ようこそいらっしゃいました。
あなたは今日人目、合計人目のお客様です(ちなみに昨日は人のお客様がいらっしゃいました)。
よろしければツッコミに足跡等を残していって下さいな。

My status ← skypeやってます。


2005年 01月27日(Thu) [長年日記]

_ 何故か仕事でC言語っぽい*1プログラム言語をさわる機会が多いのですが、最近も「C言語を独自拡張した」あるプログラム言語を触っていたりします。

*1 Cに似ているがCにあらず

_ ベースはC言語だといっても違う言語には間違いないので、専用のコンパイラを使ってコンパイルするわけなのですが、ふと標準ライブラリのとある関数の仕様があいまいだったので質問を送ってみました。

私:「この関数の引数pにNULLを指定したらどうなりますか?」

_ で、今日来た回答。

相手:「一般にアドレスが0というのはCでは特殊扱いしていますが、○○*1ではアドレス0(NULL)は存在しえます」

*1 今触っている開発環境

_ …ほへ?(´д`;) それは次のうちどっちの意味なんですか?

  1. 担当者はNULLがアドレスの0番地を示すものだと勘違いしている。
  2. このコンパイラではNULLは無効なアドレスを示す内部表現に変換されない。

_ まあ、C言語じゃないから2.の可能性も高い*1 わけですが。でも標準ヘッダを見ると「#define NULL ((void*)0)」とか書かれている訳で。もし2.だったら普通NULLは定義しないですよね。はてさて、どうなんでしょ?

*1 もしそうだとするとNULLチェックできないじゃん(^^;

_ C言語はある程度分かるけど、NULLって良く分からないんだよねって人はC FAQ 5とか見るべし。


Googleカスタム検索

my recommend books