私は現在CSコースの最終試験のために勉強していますが、C++ #ifndefの構文に関するマイナーな(おそらくメジャーな)問題にぶつかってきました。#ifndef C++のインクルードガードの構文
の#includeガードとして、それを使用しているとき、私は#infndefするための構文を見てきましたし、ウェブ上で最もが言うように見える:
#ifndef HEADER_H
#define "header.h"
...
#endif
をしかし、私のクラスのチュートリアルのスライドのように例を示します。
#ifndef __HEADER_H__
#define "header.h"
...
#endif
2つの違いが何であれ(もしあれば)、私は不思議に思っていました。試験ではおそらく#includeガードを書くように求められますが、私は従来の知恵は教授/教員の言うこととちょうど合っていることを知っていますが、編集中に違いがある場合は知りたいと思います。
あなたの家庭教師のルールが壊れていることについての議論については、[ここ](http://stackoverflow.com/questions/228783)を参照してください。[here](http://stackoverflow.com/questions/3345159)あなたがそれらを壊すなら、何がうまくいかないかもしれないかの例また、ガードをヘッダーの内側に入れる*。 –
そのままですが、インラインコードは意味をなさない:文字列リテラルを '#define 'することはできない。あなたは '#include" header.h "(元の言い回し)または' #define HEADER_H'(通常はヘッダプリアンブルの中に入るもの)を意味しましたか? – Attila