реклама на сайте
подробности

 
 
> модификатор const. Как правильно использовать в Си
inventor
сообщение Dec 22 2017, 15:39
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



где компилятор должен расположить "переменные"
такого вида:

CODE
// Описано глобально
const u8 x_pos[][8] = {
{50, 60},
{55, 62, 69, 76, 83, 90, 97, 104},
{76},
{76},
};


то же самое, описано внутри функции


и то же самое внутри функции
CODE

static const u8 x_pos[][8] = {
{50, 60},
{55, 62, 69, 76, 83, 90, 97, 104},
{76},
{76},
};



у меня есть неизменяемый массив большого размера
и при входе в функцию
этот констатный масив создается в стеке.
если его не определить как static
правильно ли это поведение или нет?


в первом варианте в глобальной константе
этот массив помещен в память Flash. Правильное поведение.

Во втором варианте в стек - неправильное
в третьем варианте во Flash память.





Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- inventor   модификатор const. Как правильно использовать в Си   Dec 22 2017, 15:39
- - Kabdim   rtfm, очень нужно почитать умную книжку по языку н...   Dec 22 2017, 16:01
|- - inventor   Цитата(Kabdim @ Dec 22 2017, 19:01) Вмест...   Dec 22 2017, 16:21
|- - demiurg_spb   Цитата(inventor @ Dec 22 2017, 19:21) мож...   Dec 22 2017, 16:29
|- - Kabdim   Цитата(inventor @ Dec 22 2017, 19:21) мож...   Dec 22 2017, 17:00
|- - demiurg_spb   Цитата(Kabdim @ Dec 22 2017, 20:00) Согл...   Dec 22 2017, 17:07
|- - Kabdim   Цитата(demiurg_spb @ Dec 22 2017, 20:07) ...   Dec 23 2017, 19:41
||- - DASM   Цитата(Kabdim @ Dec 23 2017, 22:41) Верно...   Dec 23 2017, 20:24
|- - juvf   Цитата(demiurg_spb @ Dec 22 2017, 22:07) ...   Dec 24 2017, 17:36
|- - DASM   Цитата(juvf @ Dec 24 2017, 20:36) Что так...   Dec 24 2017, 19:04
||- - razrab83   Цитата(DASM @ Dec 24 2017, 20:04) const н...   Dec 25 2017, 03:10
|||- - Quasar   Цитата(razrab83 @ Dec 25 2017, 06:10) А п...   Dec 30 2017, 09:04
|||- - razrab83   Цитата(Quasar @ Dec 30 2017, 09:04) Локал...   Jan 3 2018, 10:26
|||- - Quasar   Цитата(razrab83 @ Jan 3 2018, 13:26) Лока...   Jan 3 2018, 22:06
||- - juvf   Цитата(DASM @ Dec 25 2017, 00:04) const н...   Dec 25 2017, 03:34
|- - demiurg_spb   Цитата(juvf @ Dec 24 2017, 20:36) Что так...   Dec 25 2017, 14:08
|- - juvf   ЦитатаСогласно стандарту языка Си константные данн...   Dec 25 2017, 16:28
|- - demiurg_spb   С вами бесполезно разговаривать - это Вы к AVR и f...   Dec 26 2017, 12:03
|- - juvf   Цитата(demiurg_spb @ Dec 26 2017, 17:03) ...   Dec 27 2017, 02:57
|- - demiurg_spb   Цитата(juvf @ Dec 27 2017, 05:57) Пусть g...   Dec 27 2017, 10:12
|- - juvf   Цитата(demiurg_spb @ Dec 27 2017, 15:12) ...   Dec 27 2017, 10:49
|- - demiurg_spb   Цитата(juvf @ Dec 27 2017, 13:49) Изменил...   Dec 27 2017, 10:53
- - Raven   А разве не должен компилятор помещать глобальные и...   Dec 22 2017, 16:53
|- - demiurg_spb   Цитата(Raven @ Dec 22 2017, 19:53) Нет не...   Dec 22 2017, 16:56
|- - k155la3   Цитата(Raven @ Dec 22 2017, 19:53) А разв...   Dec 23 2017, 12:07
- - inventor   то есть для того что бы константные данные легли в...   Dec 23 2017, 18:03
- - DASM   еще как указание. статик в теле фции размещается н...   Dec 25 2017, 07:31
|- - juvf   Цитата(DASM @ Dec 25 2017, 12:28) еще как...   Dec 25 2017, 07:57
|- - Kabdim   Цитата(juvf @ Dec 25 2017, 10:57) его раз...   Dec 25 2017, 08:02
|- - DASM   Цитата(juvf @ Dec 25 2017, 10:57) пф.... ...   Dec 25 2017, 08:15
|- - juvf   Цитата(DASM @ Dec 25 2017, 13:15) вытекае...   Dec 25 2017, 08:17
- - inventor   наверное в следующих стандартах Си это можно было...   Dec 25 2017, 08:36
- - ViKo   Все, что описал топикстартер в начале темы, верно....   Dec 25 2017, 09:46
- - Сергей Борщ   Вообще-то в GCC в режиме С (без плюсов) уже года д...   Dec 25 2017, 14:48
|- - demiurg_spb   Цитата(Сергей Борщ @ Dec 25 2017, 17:48) ...   Dec 25 2017, 14:53
|- - inventor   Цитата(Сергей Борщ @ Dec 25 2017, 17:48) ...   Dec 25 2017, 16:12
- - Kabdim   Демиург, вы переоцниваете значимость техникал репо...   Dec 27 2017, 13:23
|- - demiurg_spb   Время покажет. Факт есть факт - в gcc уже реализов...   Dec 27 2017, 13:24
- - inventor   мдя задал простой вопрос и как всегда разгорелся с...   Dec 27 2017, 14:34
- - pnp_mechanic   Вставлю и я свои 5 коп. Inventor, всегда можно пос...   Dec 27 2017, 15:14
- - aiwa   Цитата(inventor @ Dec 25 2017, 10:36) ......   Dec 27 2017, 16:08
- - sigmaN   Про применение volatile const для read only регист...   Jan 1 2018, 18:44
|- - Quasar   Цитата(sigmaN @ Jan 1 2018, 21:44) Про пр...   Jan 2 2018, 08:55
|- - DASM   Цитата(Quasar @ Jan 2 2018, 11:55) Я в св...   Jan 25 2018, 17:09
|- - esaulenka   Цитата(DASM @ Jan 25 2018, 20:09) Еще бы...   Jan 27 2018, 09:35
||- - DASM   Цитата(esaulenka @ Jan 27 2018, 12:35) Пр...   Jan 27 2018, 11:25
|- - Quasar   ЦитатаПривидите плиз пример когда volatile const н...   Jan 28 2018, 09:14
|- - sidy   Цитата(Quasar @ Jan 28 2018, 12:14) В C++...   Jan 29 2018, 06:52
- - sigmaN   Кодint f(int a ) { const int c = 5; return...   Jan 3 2018, 10:53
- - razrab83   ЦитатаПеременная c вообще не займет никакой памяти...   Jan 3 2018, 13:47
- - sigmaN   Ну так мы же про размещение данных говорим вроде к...   Jan 3 2018, 18:26
|- - razrab83   Цитата(sigmaN @ Jan 3 2018, 18:26) Тоже с...   Jan 4 2018, 08:50
|- - Quasar   Цитата(razrab83 @ Jan 4 2018, 11:50) 2Qua...   Jan 4 2018, 21:57
- - inventor   читаю pdf на IAR такой забавный пример с константа...   Jan 25 2018, 11:54
- - sigmaN   Правильно, потому что это __ramfunc и никто не хоч...   Jan 25 2018, 14:36
|- - demiurg_spb   Цитата(sigmaN @ Jan 25 2018, 17:36) Если ...   Jan 25 2018, 15:26
- - krux   IAR сделан не только под миниатюрные микроконтролл...   Jan 25 2018, 16:40
|- - demiurg_spb   Цитата(krux @ Jan 25 2018, 19:40) приведе...   Jan 26 2018, 11:12
- - sigmaN   ЦитатаПравильно, потому что это __ramfunc и никто ...   Jan 25 2018, 20:20
- - Сергей Борщ   Не знаю, что он нынче делает в C, а в плюсах новый...   Jan 27 2018, 20:24
|- - DASM   Цитата(Сергей Борщ @ Jan 27 2018, 23:24) ...   Jan 27 2018, 20:38
- - Arlleex   Ну, чтобы совсем подлить масла в огонь, можно вбро...   Jan 28 2018, 17:09
|- - DASM   Цитата(Arlleex @ Jan 28 2018, 20:09) Ну, ...   Jan 28 2018, 17:44
- - sigmaN   Кодint arr[2] = {0, 1}; int i; int pi; in...   Jan 28 2018, 19:50
|- - gerber   Цитата(sigmaN @ Jan 28 2018, 22:50) Брэйк...   Jan 28 2018, 20:03
||- - DASM   Цитата(gerber @ Jan 28 2018, 23:03) Не ср...   Jan 28 2018, 20:40
|- - alx.bilous   Цитата(sigmaN @ Jan 28 2018, 22:50) На мн...   Jan 28 2018, 21:31
|- - Kabdim   Цитата(sigmaN @ Jan 28 2018, 22:50) Кто о...   Jan 29 2018, 08:19
|- - DASM   Цитата(Kabdim @ Jan 29 2018, 11:19) Даже ...   Jan 29 2018, 15:04
|- - Quasar   Цитата(DASM @ Jan 29 2018, 18:04) +++...   Jan 30 2018, 05:16
- - sigmaN   Я думаю стоит сконцентрироваться на работе с масси...   Jan 28 2018, 20:51
|- - Quasar   Цитата(sigmaN @ Jan 28 2018, 23:51) Ответ...   Jan 28 2018, 21:15
- - DASM   Ну имя массива это не lvalue , нельзя записать ...   Jan 28 2018, 21:34
- - alx.bilous   Мне и правда нужно было упоминать что строка девят...   Jan 28 2018, 21:38
- - Arlleex   ЦитатаНа много интереснее попросить привести приме...   Jan 29 2018, 05:42
- - _Sam_   Цитатав первом варианте в глобальной константе это...   Jan 29 2018, 07:45
|- - juvf   Цитата(_Sam_ @ Jan 29 2018, 12:45) Второй...   Jan 29 2018, 09:14
|- - ViKo   Цитата(juvf @ Jan 29 2018, 12:14) Он в лю...   Jan 29 2018, 12:21
|- - juvf   Цитата(ViKo @ Jan 29 2018, 17:21) Во флэш...   Jan 29 2018, 16:01
- - sigmaN   Кодint (*ptr)[2]; Скомпилится? ptr...   Jan 29 2018, 15:46
|- - DASM   Цитата(sigmaN @ Jan 29 2018, 18:46) Кодin...   Jan 29 2018, 15:55
|- - Arlleex   Цитата(sigmaN @ Jan 29 2018, 18:46) Кодin...   Jan 29 2018, 19:35
- - DASM   delete   Jan 29 2018, 16:37
- - sigmaN   А вот это я расшифровать пока не могу Озвучу мыс...   Jan 29 2018, 21:07
|- - Arlleex   Цитата(sigmaN @ Jan 30 2018, 00:07) А вот...   Jan 29 2018, 21:14
|- - DASM   Цитата(Arlleex @ Jan 30 2018, 00:14) Ну, ...   Jan 29 2018, 21:20
||- - Arlleex   Цитата(DASM @ Jan 30 2018, 00:20) Ну блин...   Jan 29 2018, 21:27
||- - DASM   Цитата(Arlleex @ Jan 30 2018, 00:27) Вам ...   Jan 29 2018, 21:34
||- - Arlleex   Цитата(DASM @ Jan 30 2018, 00:34) Вот пос...   Jan 29 2018, 21:57
|- - dxp   Цитата(Arlleex @ Jan 30 2018, 04:14) P.S....   Jan 30 2018, 05:14
||- - Arlleex   Цитата(dxp @ Jan 30 2018, 08:14) func - н...   Jan 30 2018, 06:37
||- - DASM   Цитата(Arlleex @ Jan 30 2018, 09:37) логи...   Jan 30 2018, 08:00
||- - dxp   Цитата(Arlleex @ Jan 30 2018, 13:37) Вы н...   Jan 30 2018, 09:08
||- - Arlleex   Цитата(dxp @ Jan 30 2018, 12:08) char (*(...   Jan 30 2018, 10:38
|- - Quasar   Цитата(Arlleex @ Jan 30 2018, 00:14) P.S....   Jan 30 2018, 09:11
- - sigmaN   Цитатаfunc - это функция, не принимающая аргументо...   Jan 29 2018, 21:31
- - DASM   "кому-то еще и поддерживать." и 99 % это...   Jan 29 2018, 22:09
- - ViKo   Мудреные конструкции наподобие вышеприведенных раз...   Jan 30 2018, 05:07
- - DASM   "поплачИтесь" ,- непременно Цитата(dxp ...   Jan 30 2018, 06:04
- - Quasar   Цитата(DASM @ Jan 30 2018, 09:04) "п...   Jan 30 2018, 07:49
2 страниц V   1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 22:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01436 секунд с 7
ELECTRONIX ©2004-2016