чтобы потом вызвать её в source файле?
Имеет, особенно если ты собираешься использовать эту функцию В НЕСКОЛЬКИХ исходных файлах
Вообще не хочу, но применить хочется :))) Спасибо, попытаюсь сделать. Нормально же будет на одну функцию выделять один файл?
Ничего ненормального в этом нет.
Супер, спасибо!
Могу ли я глдобальные переменные, объявив в исходном файле, использовать в загловоке как-либо? Я попробовал extern, но не помогло
можешь. EXTERN а не external
Лучше покажи код. (pastebin)
А с гита можно? А то там много заливать
Только то, что там сейчас лежит, не работает. Подозреваю, что неправильно использовал extern
Где искать переменную? Какое имя у неё?
pointLoad массив (упс) и beamLength. Должны быть в начале main.cpp
extern float pointLoad [10] [2]; //pointLoad array is used to store forces acting on a beam А где эта переменая определена?
Где они определены?
Значения в цикле в функции 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]; , я определю её позже." НО она нигде не определяется.
А суть тут в том, что тебе НЕ НУЖНО тут extern вообще, потому что у тебя — одна единица компиляции.
Если я перепишу так, чтобы элементы массива определялись, можно будет один и тот же массив в обоих файлах использовать?
Элементы массива и так опрелелились .
Исходном и заголовчных
короче, убирай extern у всех трёх переменных, и живи пока так, тебе extern на хер не надо. У тебя там всё через жопу, но работать будет .
Заголовочный файл не является единицей трансляции. У тебя она одна — main.cpp
У тебя вообще ОДИН файл, используй сколько влезет всё, как тебе угодно.
Хех, хорошо. Просто все функции у меня были объявлены и определдены в одном файле, и всё работало, но я захотел фнукции определить в заголовчных файлах, чтобы в исходном не было слишком много строк А можно какие-нибудь советы, чтобы все было лучше, чем через жопу?
C точки зрения языка ты не изменил ничего. ПОка будешь работать в этой же схеме, extern тебе не нужен.
Раздели объявления функций (и других объектов) и определения. Объявления в *.h определения в *.cpp
Понял, буду работать! Спасибо огромное за время
Обсуждают сегодня