IAR EWB kar formázott kimenetet printf dlib könyvtár, kar, programozás
Mint sok rendszer programozás C, IAR Embedded Workbench az ARM az úgynevezett gazdag-output eszközök (formázott kimenet). Ez egyszerűbbé teszi a szöveges adatok kimenete minden lehetséges kijelző konzol mindkét vezetéken keresztül fprintf funkciókat. printf. sprintf. vfprintf. vprintf és vsprintf. A következő egy fordítási segítséget IAR (Súgó -> Tartalom -.> Tab Keresés -> írja a beviteli mezőbe formázott kimenetet, nyomja meg az Enter -> a téma listát, amely úgy tűnik, kattintson duplán kattintva formázott kimenet DLIB).
Alapértelmezésben a IAR projekt létrehozott kimeneti DLIB könyvtárban. Egyes funkciók ezen könyvtár segít átalakítani az adatok értékek (változók, állandók) a saját belső ábrázolása egy szöveges szekvencia, ami kényelmes, emberi olvasásra. Azt, hogy egy format string (format string), mint a méret az érvelés értékét minden egyes ilyen funkciót. Funkciók fprintf, printf, sprintf, vfprintf, vprintf és vsprintf (meghatározott
[Nyomtatás formátumok (Print formátumok)]
A formátum string ugyanazt a szintaxist és a nyomtatási funkciók (például pfrintf, sprintf és m. O.) A szkennelési funkciók formázott bemenet (szkennelési funkciókat. Mint sscanf). Parsing vonal szintaxis az ábrán látható.
Nyomtatás funkció ellenőrzi a formátum string elejétől a végéig, annak érdekében, hogy meghatározzák, milyen átalakítások elvégzésére. Minden nyomtatási funkciót vesz tetszőleges számú érv, vagy dolgozik a közvetlen irányítása alatt a va_list érv. Egyes nyomtatási átalakítási meghatározás a format string a következő lehetőséget a listában. Nyomtatás függvény mindegyik soros érv többször. Néhány újabb érv (ha nem rendelkeznek a megfelelő átalakítás meghatározása is) nem használják fel. Ha az argumentum nem elegendő (azaz ők mutatták kevesebb van konverziós előírást a formátum string), akkor a fordító figyelmeztető üzenetet ad (figyelmeztetés [Pe224]: formátumszövegnek igényel további érveket imya_modulya.c linenumber).
Továbbá, a leírás, az alábbi szerződési feltételeket:
- integer konverziók (integrál-transzformáció) - van meghatározót konverzió (átalakítás meghatározók), amelyek vége a d. i. o. u. x. vagy X
- lebegőpontos konverzió (átalakítás lebegőpontos) - konverziós meghatározót, hogy vége a e. E. f. g. vagy G
[Nyomtatási funkciók (nyomtatási funkciók)]
Nyomtatás funkciók (printf, sprintf és m. N.) egyszerű szöveg, vagy egy rés a sorban generálja ugyanazt a szöveget, amely megfelel a format string. Konverziós specifikáció nyomtatás (print konverziós specifikáció) használata általában egy kód konvertáló következő értéke az érvelés a megfelelő szekvenciát a szöveget. Itt nyomtatási konverziós specifikáció méret:
Félkövér szöveg a képen a funkciók hozzá a C99 szabvány.
Egy százalék jel (%) a formátum string megadhatja nulla vagy több méret zászlók (méret zászlók):
- átalakítani igazodik a bal szélét
+ generálni a jel „plusz” értékeket a jel (aláírt), amelyek pozitív
hely (space), hogy létrehoz egy helyet értékeket jele (aláírt), hogy nincs jel „plusz” vagy „mínusz” (t. e. a pozitív értékek)
# 0 átalakítására előtag o, átalakítására prefix 0x x, átalakítására prefix 0X X, vagy, hogy létrehoz egy decimális pont és egy tört része számokat, amelyek egyébként elnyomható átalakítására egy lebegőpontos
0 kiegészítésére a kezdeti nullák átalakítása után bármilyen jele vagy előtag nélkül méret flag mínusz (-) vagy az említett pontossági
Miután bármilyen formátumban zászlók, megadhatja a mező szélességét (mező szélesség), amely meghatározza a minimális számú karakter generálni az átalakítás. Kivéve, ha a törlési formátumú zászló, az alapértelmezett viselkedés - bal kiegészítik rövid átalakítás. Ha megad egy csillaggal (*) helyett decimális értéket a mező szélességét, a nyomtatási függvény értéke a következő érv (amely egész számnak kell lennie típusú, int), mint a mező szélessége. Ha az argumentum negatív, akkor olyan formában zászló „-” és az érték a szélességet.
Miután minden területen szélesség megadhat egy pontot, majd a pontosság (pontosság), ami azt jelzi, az alábbi (.):
- minimális számjegyek számát, hogy létrehoz a egész transzformáció,
- vagy a számjegyek száma a frakcionált rész generál átalakulás e, E vagy F,
- vagy a maximális számú számjeggyel a G és G konverziók,
- vagy a karakterek maximális számát, hogy létrehoz a C-vonal (C string) Conversion s.
Megadhatja * helyett decimális számjegyek a pontosság, ugyanakkor a nyomtatás függvény értéke a következő érv (amely egész számnak kell lennie típusú, int), mint a pontosság terén. Ha az argumentum negatív, akkor az alapértelmezett pontosság. Ha nem adja meg a * vagy decimális szám tizedesvessző után, a pontosság nulla lesz.
[Meghatározót nyomtatási konverziós (nyomtatása Conversion meghatározót)]
Megadása után a mező pontosság kiválaszthat egy karaktert nyomtatási átalakítás meghatározása. amelyek előzheti meg egy karaktert vagy két-karakter selejtező. Mindegyik kombináció határozza meg a típusát, amely szükséges a megfelelő konvertált argumentum (ha van ilyen), és a könyvtári funkciókat változtatni az argumentum érték konvertálása előtt egy szöveges szekvenciát. Átalakítása egész és lebegőpontos és meghatározza az alapja a szöveg használatát bemutató. Ha az átalakítás meghatározása megköveteli, pontosság p, és nem nyújtott be olyan formátumban átalakítás meghatározása kiválaszt egy értéket az alapértelmezett beállítások helyességét. Az alábbi táblázat a meghatározott kombináció és azok tulajdonságait.
Conversion Specifier
(Formátum leíró)
Nyomtatás átalakítás előírást meghatározni olyan magatartás, amely nem csökken a táblázatban. Minden változik lebegőpontos:
- Pozitív végtelen nyomatokat inf vagy INF (a szó végtelen).
- Negatív végtelen kerül nyomtatásra -inf vagy -INF.
- Nem szám (nem-szám, NaN), vagy nyomtatott, mint nan NAN.
Változatok a felső tok (a nagybetűket) átalakító meghatározása csak nyomtatott nagybetűvel, mint például% E, de nem mint% Lg.
Továbbá, a szimbólum p értéke példák pontosság (pontosság). Példák az egyes kövesse meghatározót konverzió. Egy transzformáció generálni akár 509 karakter lehet.
Vagy válasszon% a% A generáló frakcionált hexadecimális ábrázolások jel, tizedes exponenciális hatásköre kettő. A generált szöveges kapjuk formájában 0Xh.hhhP ± ± dd, ahol ± plusz vagy mínusz, akár az X szimbólumot x (konverziós% a), vagy X (konverziós% A), a h jel hexadecimális értéket, írni d decimális számjegy hexadecimális pont (.) a decimális pont az aktuális területi (aktuális területi), és egy szimbólum p egy p (konverziós% a), vagy p (konverziós% a). A generált szöveg egy egész szám, értéke 0 csak a nulla értéket, hexadecimális pont, ha van olyan szám, a frakció, vagy ha megadjuk a méret zászló # legtöbb p törtszám nélkül nullák, és legalább egy számjegyet kitevő nélkül nullát. Az eredmény az lesz kerekítve. A 0 érték nulla kitevő. példák:
Határozza% c, hogy létrehoz egy karaktert az átalakított értékeket.
Adjon ..% i. % O. % U. % X% X, illetve ténylegesen a benyújtás generálni előjeles egész (előjeles egész). Options. vagy% i tizedespont előjellel (decimális),% o Jelöletlen oktális (előjel nélküli oktális),% u előjel nélküli decimális (előjel nélküli decimális),% x előjel nélküli hexadecimális (előjel nélküli hexadecimális) lévő szimbólumok használatával 0-9 és az AF,% X előjel nélküli hexadecimális karakterek segítségével 0-9 és AF. Az átalakulás generál minimális p számjegy nyert transzformált értéket. Ha p értéke nulla, akkor a értéke 0, átalakítható generál számokat.
Határozza% e vagy% E generálására a tizedes tört ábrázolása a jel (decimális frakcionált) egy decimális kitevő mértékben 10. A generált szöveges képeznek d.dddE ± ± dd, ahol a jel ± plusz vagy mínusz, d decimális számjegy decimális egy pont (.) a tizedesvessző az aktuális nyelvhez locale, e értéke vagy e (konverziós% e) vagy e (konverziós% e). A generált szöveg egy egész szám, tizedesvessző ha p nem nulla, vagy ha megadjuk a méret zászló # o tizedesjegy pontosságú, és legalább két számjegye kitevő. Az eredmény van kerekítve. A 0 érték nulla kitevő.
Adjon% f% F, vagy generáló tizedes tört ábrázolása a jel kitevő nélkül (decimális tört, nincs kitevő). A generált szöveg formájában ± d.ddd, ahol a jel ± plusz vagy mínusz, d decimális számjegy és a tizedespont (.) A tizedes pont az aktuális nyelvhez locale. Generált szöveges legalább egy egész szám, tizedes pont, ha p nem nulla, vagy ha megadjuk a méret zászló # p tizedesjegyet. Az eredmény van kerekítve.
Határozza% g vagy% G, hogy létrehoz egy ábrázolása egy frakcionális decimális szám (decimális frakcionált), akinek nincs tizedes kitevő vagy teljesítmény 10, adott esetben. % G konvertáló a generált szöveget kapott azonos formában, mint az átalakulás vagy% e% f. Konvertálásához% G kapjunk azonos formában a szöveg, mint átalakítani a% e vagy% F. Pontosság p számát jelzi számjeggyel keletkezett (ha p értéke nulla, akkor változik 1). Ha az átalakulás% e vezethet exponenciális tartományban (-4, p), helyett ez az átalakulás% f fogják használni. Generált szöveg nem lesz nullák törtrészek tizedespont és csak akkor, ha nem nulla számjegy tört része, és ha nem adja meg a formátumot zászló #.
Adjon% p generáló külső bemutatása mutató kísér. Konvertálása határozott végrehajtása.
Határozza% s generálására a szimbólum sorozatot a tárolt értékeket a érve C-line.
Adjon %%, hogy létrehoz egy százalékjel (%).
[Configuration kimeneti funkciók DLIB könyvtár]
Jellemzők a kimeneti IAR közeg (amely printf függvény sprintf és m. P.) határozzuk DLIB könyvtár beállításokat. Hozzáférés a beállításokat a tulajdonságokat a projekt IAR: Options. -> Általános beállítások -> Tab Könyvtár Configuration, Könyvtár legördülő listából. Beállítása ezen a lapon nemcsak az printf, hanem más DLIB könyvtári funkciókat.
Jelenleg 4 lehetőség közül választhat: Nincs, normál, teljes, egyéni. Általában kiválasztott opció Full.
Semmi Ebben a megvalósításban a kimeneti funkciók nem állnak rendelkezésre. Nem tudja használni a programot formázott kimenetet printf.
Normál ezt a verziót nem támogatja a felhasználói felület nyelvét területi nincs beállítva a C locale, nincs fájl leíró támogatás, nem támogatja a multi-byte string printf formátum és a scanf nem támogatott hexadecimális lebegőpontos számok strtod. Ez a verzió gyorsabb és kevesebb memóriát használ, mint a teljes, és gyakran mondják, egyszerű programokat.
Teljes teljes konfigurációja futásidejű könyvtár C / C ++. Minden, ami elérhető volt normális, most már támogatja.
Egyéni könyvtár felhasználói konfiguráció, amely úgy definiálható egy külső plug fejléc (C-fejléc, mellék .h fájlt).
A következő lapon Library Options, lehetővé teszi, hogy testre a lehetőségeket karakterlánc formázási módosításokat (pl. E. Hogyan kell kezelni a konverziós specifikáció, az előtag%). Be lehet állítani a szoba printf (formázott kimenetet funkció) és scanf (formázott bemenet funkció).
Apró a leggyorsabb és leginkább lecsupaszított változata. Nem támogatja a, A, n, úszó, hosszú, hosszú, nem tudja használni a zászlókat.
Kis ugyanaz, mint az apró, de használható a formátum zászlókat.
Nagy nem csak, hogy támogassa a, A, minden más elérhető.
Teljes hozzáférést biztosít az összes lehetőséget formázott átalakítás.
format string format string - idézőjelek string argumentum O funkciók, amelyek konverziós specifikációkat tartalmaz (jelölve%, például "% i", "% 02X") a fennmaradó érveket.
kezdeti elmozdulás állapotban a kezdeti állapot elmozdulás
átalakítás műszaki átalakítás leírások - kezdve a százalékjel (%) kódolt különleges módon a szabályok átalakítására szöveges kimenet függvényargumentum.
va_list objektum típus, hogy a körülményekre vonatkozó információk inicializált a va_start és va_arg eléréséhez további névtelen érveket. Használt funkciók változó számú paramétert, mint például a printf.
va_start makro, tárolására a kezdeti kontextus információt a tárgyról, alkalmazásával meghatározott. Név last-par a neve az utolsó paraméter az Ön által megadott. Például a múlt-par akkor b meghatározására függvény int f (int a, int b.).
va_arg makrót, amely átviszi a következő paraméter meghatározott módon összefüggésben meghatározott információkat a kérelmet. További érvek kell egy objektum típusú Ty után szabályok alkalmazását annak érdekében, hogy bemutassa a paraméterek hiányában a függvény prototípus.