Форум: "Прочее";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2014.04.13;
Скачать: [xml.tar.bz2];




Вниз

в Си функция объявлена как static 


KilkennyCat ©   (2013-10-16 08:03) [0]

объявленные в этой функции переменные наследуют static?



Inovet ©   (2013-10-16 08:22) [1]

Нет. Такая функция не привязвна к экземпляру класса.



KilkennyCat ©   (2013-10-16 08:43) [2]

ага. спасибо.



Mystic ©   (2013-10-16 08:45) [3]

Нет, просто данная функция не попадает в объектный файл, соответственно не может быть использована в другой единице трансляции.

Например, следующие два файла нормально скомпилируются и будут работать. Но если убрать static, то будет ошибка линковки (duplicate echo_filename).

// file1.c

static void echo_filename()
{
 printf("file1.c\n");
}

void f1()
{
 echo_filename();
 printf("f1\n");
}

// file2.c

static void echo_filename()
{
 printf("file2.c\n");
}

void f2()
{
 echo_filename();
 printf("f2\n");
}



> Такая функция не привязвна к экземпляру класса.


В си нету классов



Inovet ©   (2013-10-16 09:20) [4]

> [3] Mystic ©   (16.10.13 08:45)
> В си нету классов

Действительно.



KilkennyCat ©   (2013-10-16 10:22) [5]


> Mystic ©   (16.10.13 08:45) [3]

хм... а я прочитал, что для подобных целей namespace



Mystic ©   (2013-10-16 11:49) [6]


> хм... а я прочитал, что для подобных целей namespace


namespace (анонимные) это C++, в С нет namespace. Но для совместимости C++ должен понимать C.

Ну и static короче, в анонимный namespace больше классы оборачивают. static часто с инлайнами используется. Также static позволяет сделать forward декларацию, ...



KilkennyCat ©   (2013-10-16 11:59) [7]

ага, понял. спасибо.



Mystic ©   (2013-10-16 12:39) [8]

Ну а применительно к методам класса в C++ static работает так, как сказал > Inovet ©   (16.10.13 08:22) [1]




Форум: "Прочее";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2014.04.13;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.025 c
15-1382128204     Юрий                  2013-10-19 00:30  2014.04.13  
С днем рождения ! 19 октября 2013 суббота


2-1372673534      Анастасия             2013-07-01 14:12  2014.04.13  
Дельфи начинающим


15-1382041802     Юрий                  2013-10-18 00:30  2014.04.13  
С днем рождения ! 18 октября 2013 пятница


15-1382214602     Юрий                  2013-10-20 00:30  2014.04.13  
С днем рождения ! 20 октября 2013 воскресенье


15-1381612276     Minsk                 2013-10-13 01:11  2014.04.13  
Android и Eclipse?