Здравей,
Така бързо като погледнах видях тези места като носители на лош стил.
#include <stdio.h>
//функциите директно с тялото отгоре (без прототипи)
int func()
{
//bla bla bla
}
// Принципно е хубаво да си декларираш всички функции отгоре и след това да ги инициализираш. Друго което можеш да направиш е да ги изнесеш в отделни файлове със съответстващите им хедър файлове.
int main()
{
char a = 'x';
char b;
int i;
// Не е хубаво да оставяш неинициализирани променливи. Друго можеш да им зададеш по значещи имена от просто a, b, i. Хубаво е да създаваш променливата точно когато ще я използваш.
printf("Hi %c", a);
b = getchar();
// Разделяй презентационната логика от така наречена бизнес(същинска логика) в отделни функции. Не трябва да имаш логика в main функцията освен извикване на други функции.
if(b == 'z')
{
bla_bla;
more_bla_bla;
for(i=0; i<10; i++)
{
trololo;
}
}
// Да си кажа все пак trololo, something и др. Такива наименования ТВЪРДО НЕ. Функция е действие най-често се пише с глагол(run, print, makeCoffee и др), докато променливите са носители на черти, състояние и се описват със съществително или прилагателно(isRunning, mass, height, width и др.)
if(something)
single_statement;
if(something)
for(i=10; --i; )
while(...)
single_statement;
// Много if-ове или вложени цикли не е на добре. Трябва да търсиш еквиваленто представяне с функции(да направиш по-стъпков и логически целенасочен код. Идеята е да не се получава така наречения "спагети код" или дадена функция да прави всичко - да чисти, да пере, да глади, да прави кафе и тн....)
//това в много редки случаи
while(!bla)
do_something(), b = getchar();
// Винаги слагай отваряща и затваряща скоба дори да е един ред, защото като е изморен човек лесно не вижда такива неща и може доста часове да прекара в глупости.
//без тяло понякога
while(str[i++]);
//ТВЪРДО НЕ - един ред прави едно нещо не 10 неща. Компютрите са достатъчно бързи за да се пести от четимост на кода. Кодът трябва да е максимално четим, последователен и разбираем не само за пишещия и за останалите.
return 0;
}
Поздрави, Любо.