Wenn ich If-Else-Anweisungen in C schreibe, gibt es einen Grund, warum man den Operator "gleich" über "ungleich" verwenden würde. , wenn beide zum selben Ergebnis führen können?"Gleich" gegenüber "ungleich" Operatoren in einer If-Else-Anweisung
Der folgende Code enthält den Kontext. Wenn der Argumentwert gleich 2 ist, wird eine Zeichenfolge vom Benutzer abgerufen. Wenn jedoch ein anderer Wert von Argumenten erhalten wird, wird eine Fehlermeldung angezeigt.
int main(int argc, string argv[])
{
string msg;
if (argc == 2)
{
msg = GetString();
}
else
{
printf("ERROR: Please only enter a single key! \n");
return 1;
}
Allerdings kann ich genau das gleiche Ergebnis wie die oben erreichen, indem er den Zustand des if-else-Schleife Wechsel zu sein „nicht gleich zu“, und die damit verbundenen Aktionen spiegeln. Siehe unten:
Wie auch immer, da beide das gleiche Ergebnis produzieren, sollte man bevorzugt gegenüber dem anderen verwendet werden?
Wenn Sie denken, dass es wichtig ist, dann sollten Sie erwarten, dass der Compiler eine so triviale Transformation für Sie vornimmt. – jamesdlin
Es gibt auch die Frage, was 'string' in diesem Code ist, da' main() 'ein Array von ihnen akzeptiert. Wenn 'string' nicht äquivalent zu' char * 'ist, hat der Code ein undefiniertes Verhalten. Es gibt möglicherweise auch undefiniertes Verhalten, wenn 'GetString()' etwas anderes als ein 'char *' zurückgibt. Wenn in diesem Codefragment ein nicht definiertes Verhalten vorliegt, ist die Debatte darüber, wie die 'if'-Anweisung implementiert wird, strittig. – Peter
Können wir bitte aufhören, jede einzelne Frage des Codierungsstils grundsätzlich zu schließen? Diese Dinge sind sehr wichtig zu diskutieren und es gibt kein Forum für sie überall. Programmierbücher erwähnen typischerweise Stil nicht, auch Programmierer nicht. Und damit sind die meisten C- und C++ - Programme unlesbar. Pragmatische Argumente von erfahrenen Programmierern über Stil zu hören, ist sehr hilfreich für alle. SO ist ideal für diesen Zweck. – Lundin