問題タブ [extern]
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 - 名前でextern変数(または関数)を取得する方法はありますか
名前が const char * として渡された任意の extern 変数へのポインタを返すことができる C 標準ライブラリ関数について最近読んだ気がします。それが助けになるなら、リンカーシンボルを介して機能すると思います。
c++ - デバッグ クラス、C++、リンカ エラー
私が取り組んでいるプロジェクトのデバッグ クラスを作成しようとしていますが、デバッグ オブジェクトを渡す必要がないので、このようにしようとしていました。ただし、コンパイラまたはリンカが、作成中の実装をスキップしているように見える理由がわかりません。
#include "Debug.cpp" を main.cpp に追加すると、このコードは問題なく動作します。実装を .h ファイルに入れるか、Debug.cpp を #include しない限り、コンパイラは何らかの理由で open、close、および print 関数の実装を欠いています。
Debug.cpp に実装が表示されない理由がわかりましたか?
関係ないと思いますが、現在、debug.h と debug.cpp は 1 つのプロジェクトにあり、main.cpp は別のプロジェクトにあります (両方とも同じソリューション内ですが、Visual Studio 2008)。main.cpp は実行可能ファイルとしてビルドされ、debug.h と debug.cpp はダイナミック ライブラリ (dll) としてコンパイルされます。
Debug.h
コード: すべて選択
Debug.cpp
コード: すべて選択
main.cpp
コード: すべて選択
メイン関数の印刷行のコメントを外すと、次のエラーが発生します。
コード: すべて選択
編集:私の元の議論へのリンク:
http://elysianshadows.com/phpBB3/viewtopic.php?f=6&t=5328&start=999999
iphone - ビューコントローラーでアクセスできるように外部整数変数を宣言する方法
すべてのビューで変数にアクセスしたいので、どうすれば宣言できますか....
c++ - C ++Extern/複数の定義
externを使用してC++でAdaにインターフェイスしようとしています。これら2つの実装の違いは何ですか?
実装A
実装B
どちらの実装も問題なくコンパイルされます。しかし、Impl-Aはリンクに失敗し、インデックスと値の複数定義エラーが発生します。私は違いを理解しようとしているだけです。
c++ - externを使用する場合の未定義の参照
私は次の設定をしています(うまくいけば、これはあまりにも裸の例ではありません):
ああ
A.cpp
Bh
B.cpp
さて、instを使用するB.cpp
とundefined reference to inst
。
これを修正する方法について何かアイデアはありますか?
c++ - .CPPファイルから変数にアクセスするC++
.cppファイル間の変数アクセスがどのように機能するかについて少しあいまいです。例えば:
main.cpp
main2.cpp
これにより、main.cppでコンパイラエラーが生成され、iに存在しないことが通知されます。では、「static」キーワードはこのコンテキストでどのような違いがありますか?(私はそれのためにグーグルを試しましたが、ほとんどの「静的キーワード」情報ページはクラスと関数について話します)
main2.cpp
同じですか?extern int i
他の場所へのアクセスに使用されるのを防ぎますi
か?匿名の名前空間の使用は、変数の処理方法がどのように異なりますか?
main2.cpp
総括する:
- .cppファイル間で変数にアクセスできますか?(externキーワードは別として)
- グローバル変数のstaticキーワードはどのように影響しますか?
- 匿名の名前空間はどのように物事に異なる影響を与えますか?
c++ - C++ の「extern "C"」ブロックで c99 を使用する
C で記述された関数が必要ですが、C++ から呼び出し可能で、制限されたポインターを使用します。extern "C"
これは c99 でのみ利用可能であるため、g++ は、ブロックであってもそれを好まない。この制限を回避するにはどうすればよいですか?
c++ - extern "C"(Cリンケージ)デフォルト
質問
GCC、MSVC、Clang、またはいくつかの組み合わせは、リンケージをデフォルトのCに設定することをサポートしていますか?
バックグラウンド
私は大規模な混合C/C ++プロジェクトを持っており、Cリンケージを使用してC ++ソースでシンボルをエクスポートするのは簡単で論理的ですが、これらの同じソースは、プロジェクトの残りの部分がC++リンケージの下にあると想定しています。
現在の状況では、C ++ソースで定義されているCソースが使用するものすべてと、C++ソースがCソースから使用するすべてのものを明示的にラップする必要がありますextern "C++"
。
extern "C"
最後に、実際のC ++のものが文句を言うので、ソースファイルまたはヘッダーファイル全体を配置することはできません。#include <memory>
(私が定義したfromやテンプレートなど。)
c - 「my_utils.h」をインクルードするのではなく、「extern void my_func();」を使用するのはなぜですか?
私が書いていないコードに取り組んでいて、たくさんあることに気付きましたextern void my_func();
。
私の理解ではextern
、関数ではなく、グローバル変数の場合です。
extern
関数をヘッダーファイルに入れてそれを含めるのではなく、関数を宣言する実用的な理由はありますか? それとも、これは単にスタイル上の選択ですか?
c++ - (C++) stl リストを extern として宣言する方法は?
私は持っている:
私のmain.cppで。クラス ファイルの 1 つでこれらの両方を extern として宣言する必要がありますが、単純な方法を試してみると、コンパイラが '>' の欠落に関するエラーを表示します。これを修正するにはどうすればよいですか?