Страница 1 из 1
Си для начинающих. Си для чайников.
Добавлено: 03 ноя 2012, 14:26
admin
В своё время язык Си казался чем-то недостижимым - "а как..., а что..., а почему..., да это же...., ну куда мне...
", ну и прочие заморочки мозга
Не знаю почему так автор назвал, но это реально объяснено на "пальцах".
P.S. после усвоения предложенного материала, необходимо опираться на "Язык Си" Керниган, Ричи.
Без проблем находиться в инете!
Re: Си для начинающих. Си для чайников.
Добавлено: 27 ноя 2014, 22:43
admin
Объявление структуры в *.h файле. Объявление структуры как extern
В *.h файле обьявляется следующее:
Код: Выделить всё
struct _Foo
{
...
}; // Это обьявление структуры как типа
extern struct _Foo Foo; // Это обьявление внешнего обьекта Foo типа struct _Foo
В одном *.c файле определяется обьект:
Код: Выделить всё
#include "*.h"
...
struct _Foo Foo; // Это определение обьекта Foo типа struct _Foo
В любом другом *.c файле, имеющем строку #include "*.h", обьектом Foo можно пользоваться.
Как использовать extern?
extern используется при объявлении переменной, указывая компилятору на то, что определение переменной используется далее в программе (в других файлах)
Код: Выделить всё
/* Определение неинициализированной глобальной переменной */
int x_global_uninit;
/* Определение инициализированной глобальной переменной */
int x_global_init = 1;
/* Определение неинициализированной глобальной переменной, к которой
* можно обратиться по имени только в пределах этого C файла */
static int y_global_uninit;
/* Определение инициализированной глобальной переменной, к которой
* можно обратиться по имени только в пределах этого C файла */
static int y_global_init = 2;
/* Объявление глобальной переменной, которая определена где-нибудь
* в другом месте программы */
extern int z_global;
/* Объявлени функции, которая определена где-нибудь другом месте
* программы (Вы можете добавить впереди "extern", однако это
* необязательно) */
int fn_a(int x, int y);
/* Определение функции. Однако будучи помеченной как static, её можно
* вызвать по имени только в пределах этого C файла. */
static int fn_b(int x)
{
return x+1;
}
/* Определение функции. */
/* Параметр функции считается локальной переменной. */
int fn_c(int x_local)
{
/* Определение неинициализированной локальной переменной */
int y_local_uninit;
/* Определение инициализированной локальной переменной */
int y_local_init = 3;
/* Код, который обращается к локальным и глобальным переменным,
* а также функциям по имени */
x_global_uninit = fn_a(x_local, x_global_init);
y_local_uninit = fn_a(x_local, y_local_init);
y_local_uninit += fn_b(z_global);
return (x_global_uninit + y_local_uninit);
}
Re: Си для начинающих. Си для чайников.
Добавлено: 17 мар 2015, 00:11
admin
Отличная книга по правилам программирования на Си и Си++
"Верёвка достаточной длины чтобы ... выстрелить себе в ногу. Правила программирования на С и C++" Ален И. Голуб \ Allen I. Holub
Re: Си для начинающих. Си для чайников.
Добавлено: 09 июн 2015, 19:49
admin
Заголовочные файлы (*.h)
Заголовочные файлы устанавливают соглашения по использованию общих идентификаторов (имен) в различных частях программы. Если, например, функция func () реализована в файле а.с, а вызывается в файле Ь.с, то в оба файла требуется включить директиву #inciude "имя заголовочного файла", содержащий объявление (прототип) функции func ().
Re: Си для начинающих. Си для чайников.
Добавлено: 09 май 2022, 19:17
admin