| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Ошибка линковщика |
| Автор: PILOT 13.12.2004, 14:59 | ||||||
| Не могу разобраться в одной ошибке. Сама ошибка (предупреждение) выглядит так:
Не обращайте внимание на r28, это регистр, такой же как и A на PC. Я изучаю Си (для контроллеров) но принцип везде один и тот же. Сначала, когда я не знал правил Си, взял и описал классы включая функции класса в файле .h . И все было без ошибок. Затем я прочитал, что нужно разделять объявления и сами функции и появилось следующее: Файл .h
И файл cpp:
То что это предупреждение а не ошибка это хорошо, но все же разобраться считаю нужным. Спасибо. СУВ. |
| Автор: bel_nikita 13.12.2004, 15:23 | ||||
| Во-первых, нужно сделать типа того rc.H
rc.c
Во-вторых, если пишешь на Си, то причем тут cpp? В-третьих, в Си нет классов, а есть только структуры В четвертых, я так и не понял. Изучаешь С или С++? |
| Автор: srd 13.12.2004, 15:23 | ||
| Warning w35 навёл на подозрения... Добавь во все заголовочные файлы стражи включения. Например, для rc.h
|
| Автор: PILOT 13.12.2004, 15:43 | ||
Ну, Си++ конечно. За комментарии спасибо, сейчас попробую реализовать советы. А вот по поводу w35, это значит что я мог где-то уже объявить класс? И всед за этим: Если у меня более одного файла кторорые содержат: my.h, в котором описанное выше содержимое (Файл .h), это может вызвать подобную ошибку? Я просто думал что .h можно сколько угодно и везде привинчивать... это так? СУВ. |
| Автор: srd 13.12.2004, 15:53 | ||||||
Да. Например, если у тебя заголовочный файл включается больше одного раза в одном CPP-файле (напрямую, или через другие заголовки - неважно). Препроцессор просто убирает #include, а в её место вставляет содержимое заголовочного файла.
Да.
В чистом виде нет. Но если в заголовках есть стражи включения, то можно писать #include много раз, включен он будет только один раз. |
| Автор: PILOT 13.12.2004, 16:04 |
| Попробовал стража. Не помогает. Обнаружил, что BreakPoint в теле конструктора TTriStateReg не работает (говорит, мол, некоторые точки останова не будут активны). |
| Автор: srd 13.12.2004, 16:12 |
| А можешь показать содержимое второго CPP-файла? (который init.cpp). И как писал стражей включения? И сами H-файлы случайно не пытаешься скомпилировать? |
| Автор: PILOT 13.12.2004, 16:36 |
| Так! Нашел кое-что. Увлекся Си++ и забыл, что YL зарезервированное слово. Теперь все Ок! СУВ. |