1.C++ スタイルの動的割り当ては Linux システム コールをサポートしていますか?
C++ は new/delete を使用するため、man ページでは、Linux システム コールは C スタイルの動的割り当てを使用します。それらを同じ意味で使用できますか、それとも C++ スタイルの動的変数を C スタイルの動的変数に渡すことに制限がありますか? または、一貫している限りそのままにしておくだけで問題ありませんか?
new
およびと安全にdelete
混合することはできません。しかし、C++ 自体は, andを使用できますが、適切な「オブジェクト」の場合はこれまでのところしか取得できません: 多くの既存の C++ ライブラリ コードのハードコードはandを使用しており、「placement-newing」を処理する必要があります。オブジェクトを自分で破壊します。and の観点から独自のand演算子を定義することを検討できますが、それが行われるのを見たことはありません。典型的な C ヒープ関数は、おそらくより大きな平均割り当てサイズ用に最適化されていますが、C++ は多数の小さな要求を含む可能性があるため、パフォーマンスとメモリ パッケージの効率に関する考慮事項があるかもしれません....malloc
realloc
free
malloc
realloc
free
new
delete
new
delete
malloc
free
適切なコーディング スタイル (メンテナンスが容易、デバッグが容易など) で回答していただければ幸いです。
保守性と一貫性のために、C++ プログラムは、malloc
et al の使用を最小限にするか、または排除する傾向があります。
2.さらに、この質問は、C++ を使用して Linux システム関連の作業を開発する方法に焦点を当てていますか?
必要なときはいつでも C を使用しますか? それ以外の場合は、主要な作業に C++ を使用しますか? または、これを行うためのより良い方法はありますか?
C++ は C のほぼスーパーセットであり、大規模で保守しやすく効率的なプログラムを作成するための非常に優れた機能を備えています。使用方法を知っている場合は、デフォルトで使用する必要があります。より移植性が必要な場合、または C++ を賢明に使用することを信頼できない他の人々とチームで作業したい場合は、C を使用してください。(そして、私は真剣にそれを言います。)
3. ヘッダーでは、glob.h としましょう。C++ プログラムでは、単に #include する必要がありますか、それとも別の方法がありますか?
extern "C" {
はい...ただし、前の行と}
次の行でそれを囲んで、C++ シンボル名のマングリングを抑制したい場合があります。