LINUX.ORG.RU

Ограничить зону видимости переменной файлом в котором она объявлена :)

xterro ★★★★★
()

Чтобы из других областей (файлов) к ней нельзя было иметь доступ (по extern char *str). И private-функции зачастую объявляют как static.

Eddy_Em ☆☆☆☆☆
()

Ты путаешь глобальную область видимости и файловую.

sched
()

Это написано в начале любого учебника по C

Led ★★★☆☆
()

> static char *str = «blabla»;

Причём str глобальна. Какой смысл тут несёт слово static?


В общем, это прежиток прошлого, когда еще небыло классов и модификаторов доступности свойств. Вот таким извратным способом писали приватные переменные.

webhamster
()

Впринципе static здесь ненужен, если эта переменна вне класса

pozitiffcat ★★★
()
Ответ на: комментарий от webhamster

> В общем, это прежиток прошлого, когда еще небыло классов и модификаторов доступности свойств. Вот таким извратным способом писали приватные переменные.

Какой эпичное незнакомство с матчастью.

geekless ★★
()
Ответ на: комментарий от geekless

Это классы glib

А вот glib не на сях написан. Не смешите мои тапочки.

В строгом смысле слова в С классов нет, но можно организовать что-то вроде классов на основе структур данных (в которые в т.ч. и функции-конструкторы/деструкторы можно вогнать).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> А вот glib не на сях написан. Не смешите мои тапочки.

Ага, а обёртки над JS, дающие возможность юзать привычную большинству быдлопрограммистов Си++-подобную систему классов, так и быть, означают, что в JS есть классы. Не порите чушь, ей больно.

В строгом смысле слова в С классов нет

Классов в Си нет в любом смысле, который не противоречит здравому смыслу и знакомству с матчастью.

geekless ★★
()
Ответ на: комментарий от geekless

А как же псевдоклассы?

struct class A{
  int bla;
  char blabla;
  void (*destructor)(args);
};

struct class B{
  class A clsA;
  int bbla;
  char bblabla;
  void (*destructor)(args);
}
Получаем псевдоклассы A и B, причем B - наследник A =)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ага, а обёртки над JS, дающие возможность юзать привычную большинству быдлопрограммистов Си++-подобную систему классов, так и быть, означают, что в JS есть классы. Не порите чушь, ей больно.

geekless ★★
()
Ответ на: комментарий от Eddy_Em

Когда glib успели включить в стандартную библиотеку?

buddhist ★★★★★
()
Ответ на: комментарий от legolegs

>> В общем, это прежиток прошлого

У вас там полдень, 22 век и в си есть классы? Какая мрачная антиутопия!

Зачем вырывать фразу из контекста? Это нехорошо.

Изначально было «В общем, это прежиток прошлого, когда еще небыло классов». Заметьте, я не написал «когда еще в C небыло классов». Я написал о времени - когда язык Си был языком Си, и плюсов еще не появилось.

webhamster
()
Ответ на: комментарий от webhamster

язык Си всегда был языком Си. Язык Си++ - это другой язык. оба придуманы разными людьми. то, что они похожи - еще ничего не значит.

xydo ★★
()
Ответ на: комментарий от xydo

> язык Си всегда был языком Си. Язык Си++ - это другой язык. оба придуманы разными людьми. то, что они похожи - еще ничего не значит.

Ага, и преемственность синтаксиса совершенна случайна, и совпадения C и структурного подмножества C++ тоже случайно, и название тоже один и тот же символ содержится абсолютно случайно. Так получилось.

webhamster
()
Ответ на: комментарий от webhamster

ты всё правильно понял :) Во всяком случае первоначальный язык Си в этом точно не виноват. Приписывать ему чужие «заслуги» (вроде классов) - явно нелогично.

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.