C ++タグの削除に準拠し、埋め込まれたタグを緩和するように編集されました。
char[]
まず、目前の問題は、リテラルをに渡そうとしていることunsigned char*
です。unsigned
charをまたはのいずれかと実際に同一視することはできませんsigned
。その点で少し特別です。また、文字列リテラルには一意のストレージが与えられているため、変更しないでください。キャラクターを扱っている場合は、崩壊する可能性のある標準 char*
を使用する必要があります。char[]
力強くキャストすることもできますが、そんなことはお勧めしません。コメントの1つが指摘したように、安全に行うことができます。実際、それは実際には非常に簡単なことの1つです。
しかし、reinterpret_castingで十分な資格を提供するには、厳密な答えを出すにはスペースが少なすぎます。これは、基本的に、コンパイラーに、自分が何をしているのかを知っていると言っていることです。これは潜在的に非常に危険であり、目前の問題について確信がある場合にのみ実行する必要があります。charは通常、単なる一般的なものであり、符号付きまたは符号なしでさえありません。unsigned charはcharよりも範囲が広く、通常、charはsigned charの正のサブセットを使用して文字(または収まる他の種類のデータ)を記述します。データが拡張された正の範囲にない場合は、次のようになります。行ってよかった。ただし、環境に準拠し、安全にコーディングしてください。
エントリポイント関数について-適合編集
組み込みシステムで作業することが確立されているため、これは、プログラムが何も返す必要がない可能性が非常に高いことを意味し、そのままにしておくことができますvoid main()
(特定の組み込みシステムで指定された非常に異なる戻り値が必要な場合もあります)。 、OPは、彼のシステムが課す要件について最もよく知っています)。多くの場合、あなたが空虚なままでいることができる理由は、なだめるための環境/ OSがなく、誰ともコミュニケーションをとることができないからです。しかし、組み込みシステムも非常に特殊化することができ、課せられた要件(ある場合)を満たすために、特定のプラットフォームを詳細に調査することによってアプローチするのが最善です。