2016-07-11 6 views
-5

meine Frage ist einfach und dumm Grundlagen bitte entschuldigen Sie mich.Brauchen vereinfachte Logik bei der Verwendung von Schleifen für den gemeinsamen Kontext

Ich habe einen Code wie:

#define num 8 
if (clock_mhz == 80) 
{ 
    for(i = 1, i < num; i++) 
    { 
     uint32_t temp_divisor = div_coefficient * bitrate; 
     temp_brr = (clock_mhz + (temp_divisor - 1))/temp_divisor; 
     BRR = temp_brr - 1; 
     divisor = i; 
     result = 1; 
     break; 
    } 
} 
else 
{ 
    for(i = 0, i < num; i++) 
    { 
     uint32_t temp_divisor = div_coefficient * bitrate; 
     temp_brr = (clock_mhz + (temp_divisor - 1))/temp_divisor; 
     BRR = temp_brr - 1; 
     divisor = i; 
     result = 1; 
     break; 
    } 
} 

Ich habe versucht, eine gewisse Logik hinzuzufügen, auf diese, wie unten zu arbeiten, ist aber bittet um Schleife zu beenden mit ;

#define num 8 
if(clock_mhz == 80) 
{ 
    for(i = 1 , i < num; i++) 
} 
else 
{ 
    for(i = 0, i < num; i++) 
} 
{ 
    //Code under any one for loop based on condition 
} 

Bitte helfen Sie mir in diesen einfachen und intelligenten Code zu machen.

+0

Ich habe versucht, mit Makros, aber es scheint nicht funktioniert, weil ich Clock_MHZ in der Laufzeit bekommen werde, versuchte Code ist wie unter Beispiel. #define CLOCK clock_mhz #if (CLOCK == 80) für (i = 0; i <10; i ++) printf ("In if \ n"); #else für (i = 0; i <10; i ++) printf ("In else \ n"); #endif – torban

+0

Gemeinsame Logik kann in eine andere Funktion getrennt werden, die Sie als Inline markieren können. Beachten Sie, dass #defines nur nach ihrer Zeile verfügbar sind. –

+0

Wenn der Tippfehler das einzige Problem ist, sollte die Frage vielleicht geschlossen werden, wenn nicht, als vom OP festgelegt und neu formuliert? – user3078414

Antwort

1
for(i=1;i<num;i++) 

statt

for(i=1,i<num;i++) 
+0

Sorry für Typo es ist für (i = 1; i torban

2

Ihre Schleifen identisch sind (es sei denn, ich etwas verpasst) abgesehen von dem Anfangswert von i. Sie können sie verschmelzen:

Verwandte Themen