добавлен extern и не добавлен у объекта. в чем разница поведения кроме того что "так низяя"? что он дает в случае компилятора где "можно и без него"
extern - объявление о существовании объекта, просто объявление без extern - создание объекта. Хедеры обычно включаются в несколько единиц компиляции. Если в хедере есть создание объекта и он включен в несколько единиц компиляции, то эффект такой же, как если бы несколько раз объявили создание объекта с одинаковым именем.
код-то покажи, который вопросы вызывает
да все - extern нужен был- уже не вызывает
Это сишка. Возможно помогло, а возможно ты просто удовлетворил компилятор
Кстати, между прочим, объявление функции без ее тела всегда extern.
Люблю возражения без аргументации.
Код без extern показать? Или имелось ввиду что extern компилятор сам додумывает?
а сам то обьект где то есть на который ехтерн сделан, а то потом попробуешь его использоватьи будет ай ой
чуть буквоеднее это называется "extern по умолчанию". Можно модифицировать, например прилепив static
Имелось в виду, что функция без тела - это не есть ее определение, и компилятор понимает это как указание на ее существование без всякого extern.
это называется объявление
А, дошло. Ну да, в смысле писать extern для функций явно необязательно, вот я о чем.
в таких местах всегда делаю линк - чтобы потом без спешки почитать) в спорах так кое что полезное рождается
Уже разобрались, мы друг друга не поняли. :)
не обязательно указывать extern в header файле для "внешних" функций, или стоит писать, чтобы подчеркивать это?
Я не делаю такого.
хедер обычно включается и туда, где функции реализуются, и туда, где используются
ну да. Я эти extern заметил в какой-то встроенной библиотеке Си и подумал, что это нормальная практика такая
Обсуждают сегодня