Bună ziua, Putem întâlni situații în care avem suficient de multe condiții într-un if încăt linia să depășească un prag de bun simț (să spunem, 100 de caractere). Presupunem următoarea secvență de cod: if (CONDIȚIE_1 || CONDIȚIE_2 || CONDIȚIE_3 || CONDIȚIE_4 || CONDIȚIE_5) { instr; }
Nu am găsit în standardul pentru Linux Kernel o soluție pentru aceste situații, dar am identificat 3 metode prin care am putea aborda aceste cazuri: 1) Refactorizarea codului prin adăugarea unei funcții (care nu va apărea și în fișierul .h) astfel: int my_function() { return CONDIȚIE_1 || CONDIȚIE_2 || CONDIȚIE_3 || CONDIȚIE_4 || CONDIȚIE_5; } if (my_function()) { instr; } Dezavantaj: Nu este imediat evidentă condiția, fiind nevoie să cauți funcția pentru a înțelege codul. 2) "Spargerea" condiției pe mai multe linii, astfel: if (CONDIȚIE_1 || CONDIȚIE_2 || CONDIȚIE_3 || CONDIȚIE_4 || CONDIȚIE_5) { instr; } Dezavantaj: Indentarea instrucțiunilor este identică celei a condițiilor, și nu este imediat clar unde se termină condițiile și unde încep instrucțiunile. 3) "Spargerea" condiției pe mai multe linii, astfel: if (CONDIȚIE_1 || CONDIȚIE_2 || CONDIȚIE_3 || CONDIȚIE_4 || CONDIȚIE_5) { instr; } Dezavantaj: Nu se respectă recomandarea generală de a avea acolada deschisă pe aceeași linie cu închiderea condiției unui 'if'. Aveți vreo recomandare legată de acest aspect? Mulțumesc frumos. O seară plăcută Teodor Popescu +40 770 498 496 | teodor.popescu2005 | 335CB _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii