22.02.2012, 10:51 PM
Ok... dann noch eine Kritik.
if...else....Anweisungen am Ende einer Routine ("ChargeBattery") sind schlecht, weil soweohl der if-Teil als auch der else-teil zur gemeinsamen Ende-Adresse springen. Aber da steht nur return. Die meisten Compiler raffen esnicht, dass sie ja eigentlich am Ende der if-Klammer gleich return ausführen könnten und nicht erst auf den return springen müssen.
Ich würde sowas in C erzwingen:
if(VChargeInOut>MainsThreshold) {
blabla;
return;
}
EXTon = 0;
Dann kann die else-Anweisung auch gleich ganz wegfallen, weil wenn er in das if reingelaufen ist, dann kommt er sowieso nicht mehr beim else an. Dadurch verkürzt sich das C-Programm und wird lesbarer.
Aber wie gesagt: das geht nur, wenn if...else am Ende einer Prozedur/Funktion stehen.
if...else....Anweisungen am Ende einer Routine ("ChargeBattery") sind schlecht, weil soweohl der if-Teil als auch der else-teil zur gemeinsamen Ende-Adresse springen. Aber da steht nur return. Die meisten Compiler raffen esnicht, dass sie ja eigentlich am Ende der if-Klammer gleich return ausführen könnten und nicht erst auf den return springen müssen.
Ich würde sowas in C erzwingen:
if(VChargeInOut>MainsThreshold) {
blabla;
return;
}
EXTon = 0;
Dann kann die else-Anweisung auch gleich ganz wegfallen, weil wenn er in das if reingelaufen ist, dann kommt er sowieso nicht mehr beim else an. Dadurch verkürzt sich das C-Programm und wird lesbarer.
Aber wie gesagt: das geht nur, wenn if...else am Ende einer Prozedur/Funktion stehen.