Как вы могли заметить в предыдущих примерах — для имён констант использовались заглавные буквы:
$ cat constants.c | grep 'define\|PI'
#define PI 3.14
#define PI 5.0
const double C_PI = 3.14159265358979323846;
printf("My math: %f\n", PI);
printf("My math: %f\n", M_PI);
C_PI = 100;
printf("My math: %.10f\n", C_PI);
А слова в именах — разделяются символом подчёркивания — M_PI.
Давайте рассмотри ещё один пример кода:
#include <stdio.h>
#define somevalue 10
#define some_other_value 15
#define SERVICE_CHARGE 33
int do_something( int x ) {
return x + somevalue;
}
int Do_Something( int x ) {
return x + some_other_value;
}
int calculate_grand_total( int subtotal ) {
int grand_total;
grand_total = subtotal + SERVICE_CHARGE;
return grand_total;
}
int main(int argc, char **argv) {
printf("%d\n",do_something(500));
printf("%d\n",Do_Something(600));
printf("%d\n",calculate_grand_total(700));
return 0;
}
Использование заглавных букв с разделением имён с помощью «_» — общепринятое соглашение в C.
Кроме того, в C принято следующее:
- используйте строчные буквы в именах переменных:
#define somevalue 10 - используйте строчные буквы в именах функций:
int calculate_grand_total() - используйте символ «
_» для резделения имени, если оно состоит из нескольких слов:
grand_total - многие программисты предпочитают использовать строные буквы и для имён аргументов:
( int subtotal )
Тем не менее — оно остаётся только соглашением, но не строгим правилом — вы можете использовать заглавные буквы для разделения имени, например — subTotal, вместо sub_total.
Однако помните, что как ивсё в Unix/Linux — C вляется регистро-зависимым языком: subTotal и subtotal будут являться двумя разными именами.
Например функции:
...
int do_something( int x ) {
return x + somevalue;
}
int Do_Something( int x ) {
return x + some_other_value;
}
...
И вызываются они как две различные функции, с различными аргументами:
...
printf("%d\n",do_something(500));
printf("%d\n",Do_Something(600));
...
Проверяем:
[simterm]
$ ./naming 510 615 733
[/simterm]
Описательные имена
Ещё один очень важный момент при выборе имени переменой или имени функции — это её смысловое значение.
Например:
...
int myfunc(int z) {
int t;
t = z + v;
return t;
}
...
И другой вариант имён:
...
int calculate_grand_total( int subtotal ) {
int grand_total;
grand_total = subtotal + SERVICE_CHARGE;
return grand_total;
}
...
Обе функции рабочие, но имена во второй дают намного более чёткое представление о данных в переменных и о роли и действии самой функции. Имена не играют никакой роли для компилятора — но помогут и вам и другим девелоперам разобраться в вашей программе.
Итак — применяйте в имени функции её роль, те. — что_функция_делает?, а для пременных и параметров — данные, которые в них хранятся — что_тут_хранится?
Продолжение — часть 10 – операторы равенства и присваивания.
Предыдущая часть




2 087 views