0
私はソースコード を読んでいます。 uint32 XYZ; ... XYZ =(uint32)0x0000000U。MISRA-C:リテラル番号のキャスト
キャストが必要かどうかは、XYZ = 0Uですか?
おかげ
私はソースコード を読んでいます。 uint32 XYZ; ... XYZ =(uint32)0x0000000U。MISRA-C:リテラル番号のキャスト
キャストが必要かどうかは、XYZ = 0Uですか?
おかげ
0U
は理論的に64ビットの符号なし整数であることができる整数定数。もしそうなら、MISRA-C(2012 10.3)はより狭い型への暗黙的な変換を許可しないので、キャストが必要です。ただし、32ビットCPUなどではキャストは必要ありません。
代わりに、uint32_t XYZ = UINT32_C(0);
と書くことができます。この場合、コンパイラは整数定数の適切な型を自動的に選択します。