Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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]



Страницы: 1 вся ветка

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

Наверх





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


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


15-1382006712
stas
2013-10-17 14:45
2014.04.13
Проблема VS 2010+Devexpress 2012 1.5


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


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский