|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
Как можно функцию описаную в одном файле включить во все файлы проекта17.06.2013, 18:23. Показов 2695. Ответов 11
Метки нет (Все метки)
Задача такая
Определяю функцию в файле 1.сpp
пробовал по всякому игаться с #pragma once но не помогает Опишите плз схему, цель чтобы функция была в одном .cpp или .h файле и делая инклуд этого файла функция сразу была доступна. Сейчас чтобы функция была доступна во всех файлах проекта я делаю описание функции в .cpp файле и описываю прототип функции в .h файле после чего включаю инклудом этот файл, после чего функция становиться доступна, хочу это все упростить и делать все в одном файле
0
|
||||||
| 17.06.2013, 18:23 | |
|
Ответы с готовыми решениями:
11
Как можно объединить эти файлы? Что бы было в одном файле Как присоединить к h файлу проекта и к cpp проекта файлы из папки, лежащей с ними на одном уровне Текстовые файлы: Собрать все страницы по порядку в одном файле |
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
||||||||||||||||
| 17.06.2013, 18:37 | ||||||||||||||||
|
Нужно создать пространство имен с методом test и чтобы были инклуд гварды. Вот пример:
а ещё можно сделать так:
0
|
||||||||||||||||
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
| 17.06.2013, 20:16 [ТС] | |
|
MastAKK,
использую Visual Studio 2010 Добавлено через 1 час 26 минут Пример скомпилил но проблема когда делаю инклуд test.h в другой .h файл скажем (stdafx.h) И подключаю этот stdafx.h в .сpp файл то выдает ошибку test.obj : error LNK2005: "void __cdecl Test::test(void)" (?test@Test@@YAXXZ) уже определен в stdafx.obj а это очень не удобно, хотелось бы собрать все .h файлы с функциями в одном главном хедер файле и включать только его
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 17.06.2013, 20:52 | |
|
Не нужно никаких пространств имен. Просто определить функцию в заголовочном файле и добавить защиту от повторного включения. cpp-файл не нужен в таком случае. Но это в общем случае изврат.
0
|
|
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
| 17.06.2013, 21:52 [ТС] | |
|
Tulosba,
можно пример схемы как это сделать ? я пробовал и #pragma once и #ifndef #define в h-файле с функцией прописывать но это мне постоянно дает ошибку типа test.obj : error LNK2005: "void __cdecl test(void)" (?test@@YAXXZ) уже определен в stdafx.obj и про изврат можно подробней, как лучше то сделать ? сейчас постоянно обновляю два файла срр файл с телом функции и h файл с прототипом этой функции, вот это изврат куда удобней все делать в одном файле, но не получаеться я не против и прототип и тело функции писать в одном файле, но тоже не пашет
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||
| 17.06.2013, 22:04 | ||||||||
1
|
||||||||
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
| 17.06.2013, 22:19 [ТС] | |
|
Tulosba,
этот пример не работает, создавал пустое консольное приложение в VS2010 вот проект http://webfile.ru/6568268 в упор не вижу в чем проблема
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
| 17.06.2013, 22:41 | ||||||
|
nill, добавьте inline или static для функции:
1
|
||||||
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|||
| 17.06.2013, 23:51 [ТС] | |||
|
Tulosba,
Вот теперь заработало спасибо! А если кратко в чем отличия inline и static, как то мало инфы про них И еще
0
|
|||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||
| 18.06.2013, 11:09 | ||||
|
inline встраивает тело функции вместо ее вызова. Но это всего лишь рекомендация компилятору, т.е. встраивание может быть и не достигнуто.
1
|
||||
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||
| 18.06.2013, 17:04 [ТС] | ||
Схема использования такая в гланывый .h файл будет включены инклуды на .сpp файлы с функциями и ко всем файлам проекта будет подключен только один главный .h файл, то есть во всех файлах проекта будут доступны все функции
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 18.06.2013, 17:21 | ||
|
Нечто подобное я видел под QNX в Photon Application Builder. Генерился файл proto.h с прототипами всех не static функций проекта.
1
|
||
| 18.06.2013, 17:21 | |
|
Помогаю со студенческими работами здесь
12
Типизированные файлы: в одном файле заменить все минимальные числа на максимальные Окно, разделенное сплитом на 3 части. Как распределить код, чтобы он не находился в одном файле проекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|