固定サイズの文字バッファを単純な文字列と比較する低レベルの組み込みシステムです。バッファーは文字列よりもはるかに大きいので、比較演算子が2つが等しくないと言う理由です。これは、文字列をバッファの先頭と比較する簡単な関数を書くように促しました。これは洗練されたソリューションですか?おかげC固定サイズのchar配列と文字列を比較する
int CompareString(const char* string, int strlen)
{
//first check to see if the length is the same
//if there is a null char at string length then
//they are equal
if(MsgBuffer[strlen] != '\0')
{
return 0; //they are not equal
}
strlen = strlen - 1;
while(strlen > -1)
{
if(string[strlen] != MsgBuffer[strlen])
{
return 0; //they are equal
}
strlen = strlen - 1;
}
return 1; //they are equal
}
strncmp()を使用することに間違いがあります。 MsgBufferがグローバルであることを考えると、それは優雅ではありません。 –
ミッチこれは、単一目的の低レベル組み込みシステムです。グローバルは受け入れられます。 – Dave
また、私は非常に小さなスペースの制約の下にあります - string.hをインポートしないでください私に不必要な膨らみの負荷を与えますか? – Dave