Coding Style für µC Programmierung in C

Gast #3058754
Lesenswert?

Hallo Leute,

Ich bin gerade am überlegen wie ich Funktions und Variablennamen in 
meinem Code am besten gestalte. Ich habe bereits viel Erfahrung in der 
Desktop Programmierung mit Qt und mich bis jetzt auch an die Coding 
Conventions gehalten. Das Problem: C-Code kann man leider nicht 100% 
gleich bennen wie C++ Code. Deshalb habe ich ein paar Ideen gesammelt:

"Normaler" C Style:
1
delay_ms();
2
timer_init();
3
timer_set_clk();

Meiner Meinung nach ziemlich hässlich und unpraktisch.

CamelCase:
1
delayMs();
2
timerInitialize() oder initializeTimer()?
3
timerSetClock() oder setTimerClock()?

So hab ichs bisher gemacht. Man kommt aber schnell drauf das man 
Funktionen im rechten Style schwer findet und im Linken wirds 
unleserlich.

Hybrid Style:
1
delayMs();
2
Timer_initialize();
3
Timer_setClock();

Kommt schon sehr nahe an den Qt-Style heran (Timer::initialize()). 
Globale Funktionen mit <Bibliotheknamen>_ und privates ganz Normal.


So jetzt meine Frage, wie "Styled" ihr euren Code?
#3058776
Lesenswert?

So, das ich ihn lesen kann ;-)

Ich denke jeder macht das so wie er am besten damit klar kommt. Ich zum 
Beispiel so:

1
#ifdef MSB
2
void sr_byte_out(uint8_t byte)
3
{
4
  uint8_t i;
5
  for (i = 0; i < 8; i++)
6
  {
7
    if(byte & 0x80) SD_HI();
8
    SCL_HI();
9
    SR_DELAY();
10
    SCL_LO();
11
    SD_LO();
12
    byte <<= 1;
13
  }
14
}
15
#else
16
void sr_byte_out(uint8_t byte)
17
{
18
  uint8_t i;
19
  for (i = 0; i < 8; i++)
20
  {
21
    if(byte & 0x01) SD_HI();
22
    SCL_HI();
23
    SR_DELAY();
24
    SCL_LO();
25
    SD_LO();
26
    byte >>= 1;
27
    
28
  }
29
}
30
#endif //MSB

Gruß,
Stefan
#3058795
Lesenswert?

Strahlex schrieb:
> "Normaler" C Style:delay_ms();
> timer_init();
> timer_set_clk();
> Meiner Meinung nach ziemlich hässlich und unpraktisch.

Warum unpraktisch? Ob er hässlich ist oder nicht, ist zu 100% 
subjektives Empfinden. Also mach es so, wie du es "schöner" findest, 
wenn dir kein objektives Kriterium für das eine oder andere einfällt.

> CamelCase:
> delayMs();
> timerInitialize() oder initializeTimer()?
> timerSetClock() oder setTimerClock()?
> So hab ichs bisher gemacht. Man kommt aber schnell drauf das man
> Funktionen im rechten Style schwer findet und im Linken wirds
> unleserlich.

Was ist daran unleserlich? Ich statte die Funktionen immer mit einem 
Präfix aus, der das Modul benennt, zu dem sie gehören. Also fangen alle 
Funktionen, die sich um den Timer kümmern, eben mit "timer_" an.

Sauger schrieb:
> Mabend,
>
> Strahlex schrieb:
>> So jetzt meine Frage, wie "Styled" ihr euren Code?
>
> aussagekräftig, Geschmacksache zählt nicht.

Das meiste davon ist aber nun mal Geschmackssache. Auch was 
aussagekräftig ist und was nicht, hängt oft vom persönlichen Geschmack 
ab.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren