-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!news2.arglkargh.de!news.mixmin.net!aioe.org!NZ87pNe1TKxND
knVl4tZhw.user.46.165.242.91.POSTED!not-for-mail
From: a...@m...uni.wroc.pl
Newsgroups: pl.misc.elektronika
Subject: Re: C - ?a?cuchy tekstowe definiowane w parametrach funkcji
Date: Sat, 27 Aug 2022 18:30:03 -0000 (UTC)
Organization: Aioe.org NNTP Server
Message-ID: <tednrb$15a$1@gioia.aioe.org>
References: <6308cdf1$0$6193$65785112@news.neostrada.pl>
<4...@g...com>
<63091035$0$560$65785112@news.neostrada.pl>
Injection-Info: gioia.aioe.org; logging-data="1194";
posting-host="NZ87pNe1TKxNDknVl4tZhw.user.gioia.aioe.org";
mail-complaints-to="a...@a...org";
User-Agent: tin/2.4.5-20201224 ("Glen Albyn") (Linux/5.10.0-9-amd64 (x86_64))
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:57U25n5GS/6j1Gd/2hwEYz3ZpiQ=
Xref: news-archive.icm.edu.pl pl.misc.elektronika:773978
[ ukryj nagłówki ]Atlantis <m...@w...pl> wrote:
> On 26.08.2022 16:40, Dawid Rutkowski wrote:
>
> > W AVR - i pewnie w innych harvardach - jest mo?liwo?? zrobienia tak,
> > ?e nie b?dzie u?ywany RAM - send(PSTR("tekscik z ROMu"));
> > a jako argument leci wska?nik - ale do flasha.
>
>
> Tak to by?o robione na cz??ci o?miobitowych mikrokontroler?w, takich jak
> PIC16/PIC18 albo w?a?nie AVR (i w zwi?zku z tym r?wnie? wi?kszo?? p?ytek
> Arduino). ?eby unikn?? kopiowania do RAM-u, trzeba by?o deklarowa?
> ?a?cuchy tekstowe za pomoc? specjalnych makrodefinicji. Istnia?y te?
> specjalne wersje funkcji do operacji na ?a?cuch, przygotowane z my?l? o
> nich.
>
> W przypadku nowoczesnych uk?ad?w 32bitowych (STM32, PIC32,
> ESP8266/ESP36) nie ma ju? takiej potrzeby, bo zar?wno flash jak i RAM
> stanowi? cz??? tej samej przestrzeni adresowej i mo?na si? do nich
> odwo?ywa? za pomoc? tych samych wska?nik?w, a ?a?cuchy zdefiniowane jako
> const char* trafiaj? do flasha.
> Oczywi?cie trzeba uwa?a? na to co si? robi, bo np. pr?ba zapisu pod
> adres we flashu spowoduje rzucenie wyj?tku.
>
> Moje pytanie dotyczy?o czego? innego - chcia?em si? upewni?, czy
> faktycznie ?a?cuch zdeklarowany jako argument funkcji (a nie jawnie,
> jako globalna sta?a z kwalifikatorem const) zawsze b?dzie zapisany we
> flashu. Wyobra?my sobie np. hipotetyczn? sytuacj?:
>
> Send("Lights on");
> Send("Lightf off");
>
> Czy nie istnieje np. ryzyko, ?e kompilator spr?buje to niejawnie
> zoptymalizowa? i zdefiniuje sobie we flashy ?a?cuchu "Lights ", "on"
> oraz "off", a potem b?dzie tworzy? ich kombinacje na stosie, przed
> przekazaniem w argumencie funkcji?
Po co sie martwisz? Kompilator ma to zrobic tak zeby lancuch znakow
zachowywal sie jak stala. W szczegolnosci ma istniec po tym jak
zakonczy sie wykonanie funkcji. Teoretycznie mozna sobie wyobrazic
jakis skomplikowany system ktory przydziela dynamicznie pamiec
a zwalnia ja gdy nie jest potrzebna. Z tego co wiem zaden
kompilator nie robi czegosc takiego. Robia co innego, jak
masz np.
"turn lighths on"
i
"lights on"
kompliator moze jako drugi lancuch uzyc koncowa czesc pierwszego.
Kompilator moze zastapic _uzycie_ lancucha znakow przez sztuczki
w podobnym stylu do tego co sobie wyobrazales. Ale te sztuczki
dzialaja gdy w miejcu uzycia lancuch jest znany.
--
Waldek Hebisch
Następne wpisy z tego wątku
- 27.08.22 20:55 JDX
- 27.08.22 21:43 Dawid Rutkowski
- 28.08.22 12:34 JDX
- 28.08.22 14:27 Dawid Rutkowski
- 28.08.22 14:30 Atlantis
- 29.08.22 07:29 JDX
- 29.08.22 10:25 Krzysztof Gajdemski
Najnowsze wątki z tej grupy
- Akumulatorki Ni-MH AA i AAA Green Cell
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
Najnowsze wątki
- 2024-12-04 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-04 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-04 Warszawa => Software .Net Developer <=
- 2024-12-04 Re: Zadrży rząd Tuski przed "zniesławianym"/zniesławianym "ruskim szpiegiem"? [Oleinychenko wydalony]
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=