Poradek v "C"

Ladislav Vaiz spam@nagano.cz
Sobota Září 8 16:22:48 CEST 2007


POZOR! Následující text se týká jazyka C a zmíněný je i Linux. Pokud při 
shlédnutí těchto slov začínáte vidět rudě, tak raději smažte mail bez 
čtení. Konstruktivní připomínky jsou samozřejmě vítány :-)
> Soubor se includuje do vice modulu. Nebude vadit kompilatoru ze ma definici 
> UART_STAV a UART_VYSLEDEK ve vice modulech? U typedef to je jasne, ale 
> nejsem si jist u vyctoveho typu.
>   

To se dělá preprocesorem:
#ifndef __FILE_H
#define __FILE_H

#include <stdio.h>

typedef ...
#define ...

#endif
>
> Narazil jsem na nekolik zpusobu nazvu funkci a promennych. Jakou mate 
> zkusenost z praxe?
>   
No já se držím filosofie popsané v /usr/src/linux/Documetation/CodingStyle:

C is a Spartan language, and so should your naming be.  Unlike Modula-2 
and Pascal programmers, C programmers do not use cute names like 
ThisVariableIsATemporaryCounter.  A C programmer would call that 
variable "tmp", which is much easier to write, and not the least more 
difficult to understand.

>
> Nazvy typu a structur se doporucuje psat VELKYMI PISMENY. Jak mam ale vedet 
> ze je to definice typu a ne konstanta? Pouzivate doplnujici predpony? 
> Napriklad S_NAZEV_TYPU_STRUCTURY a T_NAZEV_TYPU_PROMENNE?
>   
Já to píšu:
enum stavy{
    ST_PRVNI,
    ST_DRUHY
};

enum stavy stav;

Vlastně ani nepoužívám typedef.

Samozřejmě pro velké projekty typu statisíce řádek může být vhodnější 
rozlišovat identifikátory trochu víc. Maďarskou notaci nepoužívám.

Láďa




Další informace o konferenci Hw-list