189 похожих чатов

А теперь растолкуйте плиз. при прочих равных, если в хедере

добавлен extern и не добавлен у объекта. в чем разница поведения кроме того что "так низяя"? что он дает в случае компилятора где "можно и без него"

21 ответов

22 просмотра

extern - объявление о существовании объекта, просто объявление без extern - создание объекта. Хедеры обычно включаются в несколько единиц компиляции. Если в хедере есть создание объекта и он включен в несколько единиц компиляции, то эффект такой же, как если бы несколько раз объявили создание объекта с одинаковым именем.

код-то покажи, который вопросы вызывает

Alex-GSim Автор вопроса
Vga
код-то покажи, который вопросы вызывает

да все - extern нужен был- уже не вызывает

Alex GSim
да все - extern нужен был- уже не вызывает

Это сишка. Возможно помогло, а возможно ты просто удовлетворил компилятор

Alex GSim
да все - extern нужен был- уже не вызывает

Кстати, между прочим, объявление функции без ее тела всегда extern.

Michael Isaev
Нет

Люблю возражения без аргументации.

Electronics Designer
Люблю возражения без аргументации.

Код без extern показать? Или имелось ввиду что extern компилятор сам додумывает?

Alex GSim
да все - extern нужен был- уже не вызывает

а сам то обьект где то есть на который ехтерн сделан, а то потом попробуешь его использоватьи будет ай ой

Electronics Designer
Кстати, между прочим, объявление функции без ее те...

чуть буквоеднее это называется "extern по умолчанию". Можно модифицировать, например прилепив static

Michael Isaev
Код без extern показать? Или имелось ввиду что ext...

Имелось в виду, что функция без тела - это не есть ее определение, и компилятор понимает это как указание на ее существование без всякого extern.

Michael Isaev
Код без extern показать? Или имелось ввиду что ext...

А, дошло. Ну да, в смысле писать extern для функций явно необязательно, вот я о чем.

Alex-GSim Автор вопроса
Michael Isaev
Нет

в таких местах всегда делаю линк - чтобы потом без спешки почитать) в спорах так кое что полезное рождается

Alex GSim
в таких местах всегда делаю линк - чтобы потом без...

Уже разобрались, мы друг друга не поняли. :)

Electronics Designer
Кстати, между прочим, объявление функции без ее те...

не обязательно указывать extern в header файле для "внешних" функций, или стоит писать, чтобы подчеркивать это?

linxon
не обязательно указывать extern в header файле для...

хедер обычно включается и туда, где функции реализуются, и туда, где используются

Vga
хедер обычно включается и туда, где функции реализ...

ну да. Я эти extern заметил в какой-то встроенной библиотеке Си и подумал, что это нормальная практика такая

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта