K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>この小細工を施したヘッダを『すでに定義を書いてあるファイル』に >>インクルードしているようなソースが世の中に(けっこう)存在する >> >>という大前提がありますよね。 > >えっ? >…と読み返したら、yuyaさんの[1034]には確かにそう書いてありました。 >(すみません、よく読んでませんでした) >この小細工を使うときには、.cにはそもそも定義を書かないと思います。 >.cに定義を書いたらメリットがまったくありませんので。 > >>>・この小細工は、(1)の問題の解決には役に立たない >>えーと、これは「小細工を施してもコンパイラはチェックしてくれない」と >>いう意味ではなく、「チェックしてくれるのは小細工のおかげではない」と >>いう意味ですよね? > >そうです。 >小細工を行わないとき、方法はふたつあって、[1037]で言うところの > >a)defvar.cに定義を書き、extern.hに宣言を書く。 > defvar.cではextern.hを#includeする。 >b)defvar.cに定義を書き、extern.hに宣言を書く。 > defvar.cではextern.hを#includeしない。 > >a)なら型チェックが効きますが、b)では効きません。 >774RRさんがおっしゃるような、 > >>この小細工はexternとは同一翻訳単位外のものを取り扱うものだと >>「誤解したプログラマ > >なら、a)はそもそも書けないと思い込んでいるから、型チェックのため >小細工を行った、というのが、私が書いた >「(1)を問題視したプログラマがこの小細工を使った」 >の意図です。 > > > >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!