Например TDA7294

 Форум РадиоКот • Просмотр темы - Вопросы по С/С++ (СИ)
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт апр 19, 2019 07:46:01



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5979 ]     ... , , , , 299
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 13:04:58 
Родился
Аватар пользователя

Зарегистрирован: Вс ноя 12, 2006 07:33:28
Сообщений: 10
Откуда: Владивосток
Рейтинг сообщения: 0
Цитата:
Не адреса, а значения.

Я правда хочу разобраться.

Код:
void SwapInt16Values(int16_t& pValue1, int16_t& pValue2)


Не означает ли эта запись, что внутри функции мы работаем с адресами переменных?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 13:12:57 
Друг Кота
Аватар пользователя

Карма: 76
Рейтинг сообщений: 755
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 3748
Откуда: Минск
Рейтинг сообщения: 0
Это (в C++) означает, что переменная передана по ссылке. То есть, любые изменения её внутри функции изменяют оригинальную переменную извне. Внутри функции (с точки зрения синтаксиса) с этими переменными работать нужно ровно так же, как если бы они были переданы просто по значению.

P.S.


Последний раз редактировалось WiseLord Пн апр 15, 2019 13:21:47, всего редактировалось 2 раз(а).

Вернуться наверх
 
JLCPCB, всего $2 за 10 ПП любого цвета!

Более 600 000 заказчиков по всему миру! Более 10 000 заказов в день!

Скидка до $20 на доставку для первого заказа:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 13:20:25 
Модератор
Аватар пользователя

Карма: 75
Рейтинг сообщений: 771
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 4007
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не означает ли эта запись, что внутри функции мы работаем с адресами переменных?

Означает. Мы передаём константные адреса переменных, по которым работаем с самими переменными внутри функции.
Единственные, на мой взгляд, отличия от указателей - синтаксис и константность.

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 15:31:04 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт окт 21, 2011 15:39:31
Сообщений: 119
Рейтинг сообщения: 0
Как создать и подключить .h и .с файлы? Как правильно?
Создаю timer8.c с реализацие функции, и создаю timer8.h с обьявлением функции. Кидаю в одну папку с main.cpp файлом.
В main в начале пишу:
Код:
#include "timer8.h"

Timer0Init();  // Timer0Init - обьявлен в timer8.h, и реализован в timer8.c
   
while(1)
{
 
}


В timer8.h обьявляю:
Код:
#ifndef __timer8_h__
#define  __timer8_h__

void Timer0Init(void);

#endif


В timer8.c пишу:
Код:
void Timer0Init(void)
{
   реализация Timer0Init
}


Как итог "undefined reference to `Timer0Init()'". Если в .h файле добавить "#include "timer8.c"" то ошибки нет. Но это же идеологически не правильно.
Пишу в AtmelStudio7.
Как правильно делать?


Вернуться наверх
 
Вебинар «Прецизионные сигма-дельта АЦП Texas Instruments»

17 апреля 2019 годакомпания КОМПЭЛ и Texas Instruments проводят бесплатный вебинар. Ведущий вебинара разработчик Texas Instruments прецизионных аналого-цифровых сигма-дельта преобразователей Шридар Мор. На вебинаре Шридар расскажет о самых современных АЦП, принципах работы Δ-Σ АЦП, оптимизации схемотехнического решения измерительной системы при помощи высокоинтегрированных АЦП ADS122U04, разработке прецизионных и точных измерительных систем на основе АЦП ADS1262.
Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 15:34:13 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 88
Рейтинг сообщений: 1371
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 13442
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
правильно:
1. не делать проекты без необходимости с исходниками одновременно С++ и С
2. добавлять исходники в проект средствами IDE

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
удивительно, но при взгляде на многих сверху ничего не меняется...


Вернуться наверх
 
Впервые на русском языке! Работаем с микроконтроллерами STM32F7(на основе STM32F7 Online Training)

Цикл материалов на основе STM32F7 Online Training от компании STMicroelectronics.
Описаны функциональные блоки и инструменты разработки для семейства микроконтроллеров STM32F7, охватывающие тематику системной периферии, памяти, безопасности, аналоговой периферии, цифровой периферии, таймеров, экосистемы.
Подробнее...
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 15:40:32 
Модератор
Аватар пользователя

Карма: 75
Рейтинг сообщений: 771
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 4007
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
FeCat писал(а):
Кидаю в одну папку с main.cpp файлом.
1. Этого, наверное, мало. Нужно добавить исполняемый файл в проект.
2. Объявление в .cpp-файлах внешних функций, находящихся в .c-файлах нужно делать через обрамление в extern "C"{}

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 16:27:44 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт окт 21, 2011 15:39:31
Сообщений: 119
Рейтинг сообщения: 0
Нужно добавить исполняемый файл в проект.

добавлять исходники в проект средствами IDE

Т.е. это нормально-правильно, что если в майне есть инклюд .h файла, то .cpp автоматом к нему не подтягивается? Надо обязательно средствами IDE добавлять, а не из main или добавленных к main файлов. Далать "#include "timer8.cpp"" - вроде как не правильно?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 16:29:30 
Модератор
Аватар пользователя

Карма: 75
Рейтинг сообщений: 771
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 4007
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
FeCat писал(а):
Т.е. это нормально-правильно, что если в майне есть инклюд .h файла, то .cpp автоматом к нему не подтягивается?
Да, нормально.
В любой IDE нужно добавлять ручками исходные файлы в проект.

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 
Prist.ru- удобный сайт для поиска, сравнения и покупки радиоизмерительных и электроизмерительных приборов, таких как: осциллограф, анализатор спектра, генератор сигналов, частотомер, мультиметр, лабораторный источник питания и др. На сайте есть актуальная информация о ценах и наличии приборов на складе.

Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 16:37:53 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 61
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 577
Рейтинг сообщения: 0
Есть IDE, которые всё подряд из папки компилят, но это как-то нефеншуйно.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 16:45:53 
Грызет канифоль

Карма: 4
Рейтинг сообщений: -2
Зарегистрирован: Вт июн 07, 2011 09:03:18
Сообщений: 290
Рейтинг сообщения: 0
Отнюдь. Только не всё подряд, а определённые типы файлов. Вон FeCat-у именно так и хотелось бы.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 17:07:18 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт окт 21, 2011 15:39:31
Сообщений: 119
Рейтинг сообщения: 0
Я правильно понимаю, что если появилась необходимость подключить к проекту "C++" файлы "C", то делаем так:
extern "C"{
#include "timer8.h"
};
Файл timer8.c добавится в проект "C++"(через IDE) как "C".
Аналогично можно делать вставки кода не на языке "файла".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 17:09:50 
Модератор
Аватар пользователя

Карма: 75
Рейтинг сообщений: 771
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 4007
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Файл timer8.c добавится в проект "C++"(через IDE) как "C".
Не добавится он в проект. Его нужно самому добавлять, ручками. Чтобы он отображался в дереве проекта.
Как это делается конкретно в вашем IDE - не в курсе. Погуглите.

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 17:30:25 
Это не хвост, это антенна
Аватар пользователя

Карма: 27
Рейтинг сообщений: 121
Зарегистрирован: Вс июн 24, 2012 17:07:00
Сообщений: 1411
Откуда: Лен.Обл.
Рейтинг сообщения: 0
Цитата:
В любой IDE нужно добавлять ручками исходные файлы в проект.


Нет... Есть IDE, которые сканируют каталог и всё, что там найдено считают файлами проекта и подвергают компиляции. Типичный пример - IDE Momentics в QNX 6.3 (на базе Eclipse вроде она).

Цитата:
Есть IDE, которые всё подряд из папки компилят, но это как-то нефеншуйно.


Но, кстати, очень удобно. В отличие от Visual Studio с логическими папками (которые ещё создать надо ручками), проектом очень просто управлять - создал папки и скопировал файлы и попросил пересканировать.
А вот есть всякие Keil, которые сами чего-то там из CMSIS и HAL компилируют из исходников, но в проекте этих файлов исходников не отображается (или я не в курсе, как его заставить их показать). Вот это неудобно.

_________________
И день и ночь в пути...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 17:34:55 
Модератор
Аватар пользователя

Карма: 75
Рейтинг сообщений: 771
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 4007
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Удобство - дело сугубо индивидуальное. Вам удобно - другим нет...
В любом случае, нужно сделать так, чтобы файлы появились в дереве проекта. А каким образом это сделать - зависит от конкретной IDE.
Просто подкинуть файлы в папку, в большинстве случаев, не достаточно. По этому - гуглим...

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 19:22:56 
Друг Кота
Аватар пользователя

Карма: 76
Рейтинг сообщений: 755
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 3748
Откуда: Минск
Рейтинг сообщения: 0
Тупо подключать и компилировать все .c файлы из каталога - плохая идея. Компилятору следут передавать только нужные файлы.

Почему - ответ простой. Если у меня в проекте поддерживается, например, 20 разных контроллеров дисплея, а собираю я под какой-то конкретный, то компилировать 19 ненужных файлов нет смысла.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 15, 2019 19:57:41 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 88
Рейтинг сообщений: 1371
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 13442
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
da-nie писал(а):
на базе Eclipse вроде она
да, Eclipse CDT по умолчанию именно так и делает: всё, что в папке проекта, считает компилируемыми файлами. однако, легко можно исключить любой файл и даже папку целиком из этого списка.
WiseLord писал(а):
Если у меня в проекте поддерживается, например, 20 разных контроллеров дисплея, а собираю я под какой-то конкретный, то компилировать 19 ненужных файлов нет смысла
как правило, в IDE это решается при помощи конфигурации разных target-ов, и в упомянутой мною Eclipse именно так.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
удивительно, но при взгляде на многих сверху ничего не меняется...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт апр 16, 2019 10:14:48 
Опытный кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 11
Зарегистрирован: Пт сен 07, 2018 21:20:02
Сообщений: 702
Рейтинг сообщения: 1
то делаем так:
extern "C"{
#include "timer8.h"
};

Наоборот, удобней в любой заголовочный файл C в начало поставить
Код:
#ifdef __cplusplus
extern "C" {
#endif

, а в конец:
Код:
#ifdef __cplusplus
}
#endif


WiseLord писал(а):
Тупо подключать и компилировать все .c файлы из каталога - плохая идея.

По разному бывает. Я часто настраиваю makefile именно таким образом. А вот все условно включаемое размещаю в соответствующих поддиректориях, нередко даже с симлинками. Тогда настройка на конкретную сборку вызывает подключение еще одной или нескольких поддиректорий (или конкретных файлов).
В сложных сборках, когда этих самых исходных файлов десяток видов, а людей, работающих над проектом не мало, удобней минимально трогать общий makefile.
С/С++ иходники еще ничего. А вот когда ворох мелких ресурсных файлов, причем взаимосвязанных, задолбаешься постоянно makefile мержить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт апр 16, 2019 17:24:02 
Опытный кот
Аватар пользователя

Карма: 6
Рейтинг сообщений: 18
Зарегистрирован: Ср мар 02, 2011 08:47:39
Сообщений: 786
Откуда: Уфа
Рейтинг сообщения: 1
Если в .h файле добавить "#include "timer8.c"" то ошибки нет. Но это же идеологически не правильно.
Пишу в AtmelStudio7.
Как правильно делать?

Надо в cи файле написать #Include "timer8.h"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср апр 17, 2019 07:48:03 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт окт 21, 2011 15:39:31
Сообщений: 119
Рейтинг сообщения: 0
Огромное спасибо ответившим. Вроде в голове прояснилось.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5979 ]     ... , , , , 299



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  



Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y