問題タブ [static-allocation]

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.

0 投票する
1 に答える
487 参照

c - C99: 動的割り当てなしで抽象データ型を設計することは可能ですか?

抽象データ型を設計する必要がありますが、動的割り当てを使用できません。少しトリッキーなようです...

私が現在持っているもの:

adt.c で:

adt.h の見苦しい部分は次のとおりです。

これで、次のように使用できます。

長所として、不透明なデータ型があり、動的割り当てを使用する必要はありません。

反対に、これはただ醜いです。また、関数内からではなく (グローバルに) ADT_DATA( ... ) を呼び出そうとすると、エラー メッセージが表示されます。

これを改善することは可能ですか?現在、私の唯一の選択肢は、データ型を公開することです...

あなたのアイデアのためのTIA!

0 投票する
2 に答える
106 参照

c++ - C/C++ 静的に定義された配列の循環データ転送定義

循環リンクが必要な C/C++ データ構造を静的に定義するための最もよく知られた方法を探しています。たとえば、子と親の両方が相互へのポインターを必要とするツリー。

上記はコンパイルされます (g++ 5.2)。キーワードにより、からへexternの前方参照を作成できるように思われます。また、逆の方向は、先行するため、自然に機能します。opsops_subopsopsops_subops

私が気に入らないのは、両方の配列がそうであることを好むということですstatic(オブジェクトファイルに公に見えるシンボルを作成しないでください)。

方向の 1 つに整数インデックスを使用することもできますが、それはちょっとばかげているように思えます。リンカにアドレスを解決してもらいたいだけです。

これを機能させるための魔法のキーワードを持っている人はいますか?

ありがとう!

編集: C++ 静的コンストラクターや最先端の​​ C++17 拡張機能などを避ける必要があります (悲しいことに)。そして、私のアプローチはプラットフォームに依存しない必要があります。

0 投票する
4 に答える
779 参照

c - C でローカルに定義された変数の割り当てを解除する

次のコードがあるとします。

foo() が返される前に、C でランタイム スタックからバッファの割り当てを解除する (アセンブリでesp、100を追加するのに似ている) (できれば移植可能な) 方法はありますか?