私はここキロテキストエディタのためのコードを勉強していました:誰かがstdlib.hを2回インクルードする理由はありますか?
https://github.com/antirez/kilo/blob/master/kilo.c
をそして、私はstdlib.h
倍(UPDATE:コメントは私です):定義されて含まれていることに気づいた
#include <termios.h>
#include <stdlib.h> // first time
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h> // second time
#include <ctype.h>
は単にこのですエラー?それとも何かありますか?コードの作成者が多くの間違いを犯した人のように見えないので、私は尋ねます。私は無知の変化を示唆したくはありません。
@alk yeahコードの間違った行を特定しました。ちょうど上のものです。修正しました。 –
"* stdlib.hを2回インクルードしますか?*"私はこのスローピー性を考えます。そして、いいえ、正しい実装のために、2番目のインクルードは害を及ぼさない、実際にはNOPです。 – alk
うまくいけば、ちょっと見落としがあります。 stdlib.hが "ifdefsのダンス"をやっていないと、2番目のインクルージョンが効果的にNoOPになるのは驚きです。 – John3136