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

Привет! Имеет ли смысл засовывать определение функции в заголовычный файл,

чтобы потом вызвать её в source файле?

29 ответов

18 просмотров

Имеет, особенно если ты собираешься использовать эту функцию В НЕСКОЛЬКИХ исходных файлах

Nick-Semin Автор вопроса
Ilya Zviagin
Имеет, особенно если ты собираешься использовать э...

Вообще не хочу, но применить хочется :))) Спасибо, попытаюсь сделать. Нормально же будет на одну функцию выделять один файл?

Nick-Semin Автор вопроса
Nick-Semin Автор вопроса
Ilya Zviagin
Ничего ненормального в этом нет.

Могу ли я глдобальные переменные, объявив в исходном файле, использовать в загловоке как-либо? Я попробовал extern, но не помогло

Nick-Semin Автор вопроса
Ilya Zviagin
Лучше покажи код. (pastebin)

А с гита можно? А то там много заливать

Nick-Semin Автор вопроса

Только то, что там сейчас лежит, не работает. Подозреваю, что неправильно использовал extern

Nick Semin
Только то, что там сейчас лежит, не работает. Подо...

Где искать переменную? Какое имя у неё?

Nick-Semin Автор вопроса
Ilya Zviagin
Где искать переменную? Какое имя у неё?

pointLoad массив (упс) и beamLength. Должны быть в начале main.cpp

Nick Semin
Только то, что там сейчас лежит, не работает. Подо...

extern float pointLoad [10] [2]; //pointLoad array is used to store forces acting on a beam А где эта переменая определена?

Nick-Semin Автор вопроса
Ilya Zviagin
Где они определены?

Значения в цикле в функции forceInput спрашиваются на ввод. Это же не считает опредлением?

Nick Semin
Значения в цикле в функции forceInput спрашиваются...

В общем, в этом и проблема. Эти переменные у тебя ОБЪЯВЛЕНЫ, но не определены. extern float pointLoad [10] [2]; //pointLoad array is used to store forces acting on a beam extern float distributedLoad [5] [2]; //distributedLoad array is used to store distributed load, where magnitude per length is stored (N/m) and length of acting extern float beamLength; //Length of a beam это во - объявления переменных. Определений нет . Это означает буквально : "Где-то в моей будущей собранной программе будет глобальная переменная float pointLoad [10] [2]; , я определю её позже." НО она нигде не определяется.

Nick Semin
Значения в цикле в функции forceInput спрашиваются...

А суть тут в том, что тебе НЕ НУЖНО тут extern вообще, потому что у тебя — одна единица компиляции.

Nick-Semin Автор вопроса
Ilya Zviagin
А суть тут в том, что тебе НЕ НУЖНО тут extern воо...

Если я перепишу так, чтобы элементы массива определялись, можно будет один и тот же массив в обоих файлах использовать?

Nick-Semin Автор вопроса
Ilya Zviagin
В каких файлах?

Исходном и заголовчных

Nick Semin
Если я перепишу так, чтобы элементы массива опреде...

короче, убирай extern у всех трёх переменных, и живи пока так, тебе extern на хер не надо. У тебя там всё через жопу, но работать будет .

Nick Semin
Исходном и заголовчных

Заголовочный файл не является единицей трансляции. У тебя она одна — main.cpp

Nick Semin
Если я перепишу так, чтобы элементы массива опреде...

У тебя вообще ОДИН файл, используй сколько влезет всё, как тебе угодно.

Nick-Semin Автор вопроса
Ilya Zviagin
короче, убирай extern у всех трёх переменных, и жи...

Хех, хорошо. Просто все функции у меня были объявлены и определдены в одном файле, и всё работало, но я захотел фнукции определить в заголовчных файлах, чтобы в исходном не было слишком много строк А можно какие-нибудь советы, чтобы все было лучше, чем через жопу?

Nick Semin
Хех, хорошо. Просто все функции у меня были объявл...

C точки зрения языка ты не изменил ничего. ПОка будешь работать в этой же схеме, extern тебе не нужен.

Nick Semin
Хех, хорошо. Просто все функции у меня были объявл...

Раздели объявления функций (и других объектов) и определения. Объявления в *.h определения в *.cpp

Nick-Semin Автор вопроса
Ilya Zviagin
Раздели объявления функций (и других объектов) и о...

Понял, буду работать! Спасибо огромное за время

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта