inline

Тема в разделе "Микроконтроллеры AVR", создана пользователем parovoZZ, 6 янв 2019.

  1. parovoZZ

    parovoZZ Гуру

    так а кто тогда выносит ошибку "многократное определение" для определения функции в h файле без квалификатора inline? Ведь в с файле такой ошибки не возникает и не может она там возникнуть.
     
  2. SergeiL

    SergeiL Оракул Модератор

    Если я правильно понял, если у Вас в проекте несколько *.с файлов и в каждом подключен один и тот же *.h файл, в котором определена какая то функция, то эта фунцкия будет включена в каждый объектник, и при линковке, линкер ругнется про "многократное определение"
     
  3. parovoZZ

    parovoZZ Гуру

    Есть заголовок SPI.h, который, разумеется, подключен сразу в нескольких файлах. А есть ADC.h, который подключен только в main.c и над которым я издеваюсь. Так вот на определение функции без inline в этом файле и выносится ошибка.
     
  4. Asper Daffy

    Asper Daffy Иксперд

    А что, в adc.c он не подключён?
     
  5. parovoZZ

    parovoZZ Гуру

    Подключен. Сейчас ADC,c закомменчен весь, т.е. пуст, но из проекта не убран.
     
  6. SergeiL

    SergeiL Оракул Модератор

    А определение функции есть и оно совпадает по типам параметров?
     
  7. Asper Daffy

    Asper Daffy Иксперд

    Так подключён или нет? #include "adc.h" там есть или он тоже "закомменчен"?
     
  8. parovoZZ

    parovoZZ Гуру

    есть
     
  9. Asper Daffy

    Asper Daffy Иксперд

    Ну, какого тогда хрена Вы мозг пудрите
    Он у Вас подключён в двух файлах - вот и ругается.