Форум: "Прочее";
Поиск по всему сайту: 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.012 c
3-1297857711      Avil                  2011-02-16 15:01  2014.04.13  
Firebird формат строки


15-1382698422     ProgRAMmer Dimonych   2013-10-25 14:53  2014.04.13  
Победить DNS провайдера (вопрос чайника)


15-1382263484     Недовольный           2013-10-20 14:04  2014.04.13  
Delphi XE3 постоянно валится при сборке 64 бит


15-1382905802     Юрий                  2013-10-28 00:30  2014.04.13  
С днем рождения ! 28 октября 2013 понедельник


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