запрос члена "X" в чем-то, кроме структуры или союза

я программировал самобалансирующегося робота, я пишу код в vscode, используя расширение platformio.

когда я помещаю код, который мне нужен, чтобы получить угол из гироскопа в другом файле (с именем angle.c) и включаю его в основную программу, ide выдает ошибку, в каждой строке я использую библиотеку Wire в angular.c, однако тот же код скопируйте и вставьте в основную программу, и он заработает.

PS the angle.c — это просто файл функций и не имеет никакого класса.

, 👍0

Обсуждение

Проверьте команду при компиляции angle.c. Это тот самый компилятор? Вместо этого попробуйте расширение .cpp., @Mikael Patel

компилятор проверен, попробую расширение .cpp, @Allaw Hussein

вы не можете включить Wire.h в .c . Wire.h определяет класс, @Juraj

то есть вы правы, нет, пожалуйста, опубликуйте это как ответ, чтобы я мог его принять, @Allaw Hussein

решение состоит в том, чтобы изменить расширение на .cpp, потому что Wire.h определяет классы, @Allaw Hussein


1 ответ


Лучший ответ:

1

Файл .c скомпилирован компилятором C. Если вы включите файл Wire.h, содержащий определение класса, компилятор C не поймет его и выдаст ошибки.

Если в вашем файле angular.c нет кода C, несовместимого с C++, измените расширение файла на .cpp, и он будет скомпилирован компилятором C++.

,