Форум: "Прочее";
Поиск по всему сайту: 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.049 c
15-1381612276     Minsk                 2013-10-13 01:11  2014.04.13  
Android и Eclipse?


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


15-1382596973     Kerk                  2013-10-24 10:42  2014.04.13  
Развитие Delphi от Delphi 1 до Delphi XE5


15-1382357410     Дмитрий СС            2013-10-21 16:10  2014.04.13  
Событие для всех потоков.


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