問題タブ [header-files]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - #includeの違いは何ですかおよび#include"filename"?
include
CおよびC++プログラミング言語では、次のように、山かっこを使用することとステートメントで引用符を使用することの違いは何ですか?
#include <filename>
#include "filename"
c - Cエディターで自動定義...なぜですか?
EclipseがC プロジェクトで新しいファイル ( .cまたは.h#define
ファイル) を作成すると、エディターは常に次のようにファイルの先頭に を#define
自動作成します。このようなファイルの
私は他の編集者もこれを行っているのを見てきました (Codewright と SlikEdit だと思います)。#defines
問題なく削除できるので、エディターに対して何もしていないようで、それらを使用する理由が思いつきません 。なぜそこにいるのか誰か知っていますか?
c++ - C ++のヘッダーファイルにすべてのコードを入れることの長所と短所?
(ほとんど) すべてのコードがヘッダー ファイルに存在するように、C++ プログラムを構成できます。基本的には、C# または Java プログラムのように見えます。.cpp
ただし、コンパイル時にすべてのヘッダー ファイルを取り込むには、少なくとも 1 つのファイルが必要です。今では、この考えを絶対に嫌う人がいることを私は知っています. しかし、これを行うことの説得力のある欠点は見つかりませんでした。いくつかの利点を挙げることができます:
[1] コンパイル時間の高速化。.cpp ファイルは 1 つしかないため、すべてのヘッダー ファイルは 1 回だけ解析されます。また、1 つのヘッダー ファイルを複数回インクルードすることはできません。そうしないと、ビルドが中断されます。別のアプローチを使用してコンパイルを高速化する方法は他にもありますが、これは非常に簡単です。
[2] 循環依存関係を完全に明確にすることで、循環依存関係を回避します。ClassA
inがinClassA.h
に循環依存している場合、前方参照を配置する必要があります。(これは、コンパイラが循環依存関係を自動的に解決する C# および Java とは異なることに注意してください。これは、IMO の悪いコーディング プラクティスを助長します)。繰り返しになりますが、コードがファイル内にある場合は循環依存を回避できますが、実際のプロジェクトでは、誰が誰に依存しているかがわからなくなるまで、ファイルにランダムなヘッダーが含まれる傾向があります。ClassB
ClassB.h
.cpp
.cpp
あなたの考え?
header-files - 外部依存関係 / ヘッダー ファイル
Windows MSVC6.0 コンパイラで、1 つのプロジェクトを含むワークスペースがある場合、Header Files フォルダーにはどのファイルがあり、External Dependenciesフォルダーにはどのファイルがありますか?
明示的に含まれているファイル (#include <*.h> はHeader Filesフォルダーにあり、追加されたヘッダー ファイルに含まれるファイルはExternal Dependenciesフォルダーにあると思いましたが、そうではないようです。
では、2つの違いは何ですか?
-広告
c++ - ヘッダー ファイルと .cpp ファイルがあるのはなぜですか?
C++ にヘッダー ファイルと .cpp ファイルがあるのはなぜですか?
c - Cでのconst値の定義
すべてのコードが*.c
/*.h
ファイルのペアで編成されているCプロジェクトがあり、1つのファイルで定数値を定義する必要がありますが、他のファイルでも使用されます。この値をどのように宣言して定義する必要がありますか?
static const ...
それはファイルのようにすべき*.h
ですか?ファイルのようextern const ...
に、*.h
ファイルで定義されてい*.c
ますか?int
値がプリミティブデータ型( 、、double
など)ではなく、achar *
またはaであるかどうかは、どのように重要struct
ですか?(私の場合はですがdouble
。)
ファイル内のものを定義すること*.h
は、一般的には良い考えとは思えません。ファイルで物事を宣言する必要があり*.h
ますが、ファイルでそれらを定義し*.c
ます。ただし、extern const ...
コンパイラは値をインライン化できないため、このアプローチは非効率的であるように見えます。代わりに、常にそのアドレスを介してアクセスする必要があります。
この質問の本質は次のとおりです。複数の場所で値を使用するには、Cのファイルでstatic const ...
値を定義する必要がありますか?*.h
c++ - C++ ヘッダー ファイル - 混乱!
socket.h には game.h が既に含まれているため、socket.h を game.h に含めようとすると問題が発生します。このような問題を解決するにはどうすればよいですか?
c++ - C++ 名前空間とインクルード
C++ プログラムでディレクティブusing namespace
とディレクティブの両方が必要なのはなぜですか?include
例えば、
#include <iostream>
他のものをただ持っているだけ、またはただ持っていusing namespace std
て取り除くだけでは、なぜ十分ではないのでしょうか?
(Java との類推を考えています。ここでは、import java.net.*
からすべてをインポートしjava.net
ます。他に何もする必要はありません。)
c++ - C++ ヘッダー ファイルの使用に関するベスト プラクティス
ヘッダーファイルの使用法について、次の疑問があります。
1 - コメントの後に配置するガードを含める
Herb Sutter は、著書「C++ コーディング標準」の中で、上記のようなコードには問題があると述べています。彼は、「#ifndef」ステートメントはヘッダー ファイルの最初の行に表示する必要があると言っています。私はこれを説得力があるとは感じていません。これはヘッダーファイルの皆さん/ギャルが続きますか?
2 - ヘッダー ファイルで名前空間を使用する
上記のコードは正しい慣行を使用していますか? つまり、ヘッダー ファイルで名前空間を使用しますか? ヘッダー ファイルに名前空間をインポートすることが無意味である理由はわかっていますが、上記のような宣言はどうでしょうか。
上記の方法が正しい場合、別の名前空間にあるクラスの「前方宣言」をどのように行うのですか? のようですか
「循環依存」を回避する唯一の方法は「前方宣言」ですよね?
c++ - C++ でヘッダー ファイルに関数定義を記述する
小さな関数がたくさんあるクラスがあります。小さな関数とは、処理を行わずにリテラル値を返すだけの関数を意味します。何かのようなもの:
ヘッダーファイル「Foo.h」とソースファイル「Foo.cpp」を作成しました。ただ、関数が非常に小さいので、ヘッダーファイル自体に入れることを考えています。次の質問があります。
- これらの関数定義をヘッダー ファイルに記述した場合、パフォーマンスやその他の問題はありますか? 私はこのような多くの機能を持っています。
- 私の理解では、コンパイルが完了すると、コンパイラはヘッダー ファイルを展開し、それが含まれている場所に配置します。あれは正しいですか?