ustratie

USTR (Micro String Library) is een string-API voor C.
Download nu

ustratie Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Prijs:
  • FREE
  • Naam uitgever:
  • James Antill
  • Uitgever website:
  • http://www.and.org/ustr/

ustratie Tags


ustratie Beschrijving

USTR (Micro String Library) is een string-API voor C. USTR (Micro String Library) is een string-API voor C. Een paar jaar geleden nu schreef ik een zeer uitgebreide string-api voor C, genaamd Vstr, het was ontworpen om extreem goed te presteren voor IO-achtige patronen omdat dat mijn geplande gebruik was (voor instantie en-httpd, mijn webserver). Het werkt heel goed, voor dat gebruik. Ook als gevolg van de extensiviteit van de API gebruikte ik het in principe overal, ook al zijn er enkele dingen die het enigszins "overkill" is voor, en ik wilde dat andere mensen het gebruikten, dus ik niet moeten toevlucht nemen tot het gebruik van string.h bij het maken van patches voor hun code. Meer dan een paar C-codeers spreek echter om een van de weinige redenen te hebben waarom ze geen VSTR willen gebruiken. De USTR API moet al deze problemen oplossen en hopelijk alle gaten invullen waarin VSTR de 500LB hamer is. Een belangrijk voorbeeld van gebruik, met opmerkingen: USTR * S1 = USTR (""); / * == "", werkt altijd * / ustr * s2 = ustr_dup (S1); / * == "", werkt altijd * / ustr * s3 = ustr_dup_cstr (""); / * == "", werkt altijd * / ustr_cmp_eq (S1, S2); / * == TRUE * / USSTR_CMP_EQ (S1, S3); / * == TRUE * / if (ustr_shared (s2)) / * Dit is waar, omdat een constante / alleen-lezen string niet vrij is * / / * alles wat * /; if (ustr_ro (s2)) / * Dit is waar * / / * wat dan ook * /; if (! Ustr_add_fmt (S2, "% S% D% C% D", "x", 4, 0, 8)) / * Fout * /; if (ustr_Owner ( S1)) / * Dit zal false retourneren, zoals NoOne de "" alleen-lezen string * / / * ook bezit * /; if (ustr_Owner (S2)) / * Dit zal true retourneren, omdat we nu geheugen hebben toegekend voor S2 * / / * wat * /; foo_api (ustr_cstr (S1), USTR_LEN (S1)); / * == "", 0 * / foo_api (ustr_cstr (S2), USTR_LEN (S2)); / * == "x 4008", 6 * / s3 = ustr_dup (S2); / * hoeft S3 niet te bevrijden als het leeg is * / / * hoeft niet te controleren op fouten als S2 == S3 * / if (ustr_Owner (S2)) / * Dit zal nu false retourneren, we hebben nu Twee referenties: S2 en S3 * / / * WAT * /; if (ustr_shared (s2)) / * Dit is onjuist, het is een niet-gedeelde tekenreeks waarnaar zowel S2 als S3 * / * ook * /; ustr_free (S2 is ); / * Vrijstaand één verwijzing naar de gegevens die zijn gericht op zowel S2 als S3 * / USSTR_SET_SHARE (S2); / * Maak S2 / S3 "Gedeelde" gegevens, dus het heeft altijd oneindige referenties * / if (ustr_shared (s2)) / * Dit is waar * / / * wat dan ook * /; if (ustr_ro (s2)) / * Dit is FALSE * / / * wat dan ook * /; s3 = ustr_dup (S2); / * Dit is hetzelfde als S3 = S2; * / ustr_free (S2); / * Deze doen niets * / ustr_free (S2); ustr_free (S2); ustr_free (S2); if (! Ustr_add_cstr (S3, "ABCD")) / * Fout * /; ustr_add_cstr (S3, "1234"); ustr_add_cstr (S3, "XYZ"); if (ustr_enomem (S3)) / * Controleer op fouten op de laatste 2 USSTR_ADD_CSTRSTR () functies tegelijkertijd USTR_OWNER (X) waar voor dit te zijn om betrouwbaar te zijn, vandaar de expliciete eerste cheque * / / * Fout * /; ustr_set_Owner (S2); / * Maak S2 "niet-gedeeld" en hebben een enkele eigenaar * / ustr_set_Owner (S1); / * Dit mislukt, omdat u geen alleen-lezen string kunt maken "niet-gedeeld" * / ustr_Sc_del (S2); / * Free'd S2 en SET S2 = USTR ("") * / USSTR_CMP_EQ (S1, S2); / * == TRUE * / S2 = USSTR1 (X0B, "Hallo World"); / * Constante string met gegevens * / if (ustr_shared (s2)) / * Dit is waar * / / * wat dan ook * /; if (ustr_ro (s2)) / * Dit is waar * / / * Noodzaak niet te "gratis" Al het andere * / Wat is er nieuw in deze release: · Deze release voegt Trimfuncties, Multi-Lib-ondersteuning, ondersteuning voor het verwijderen van systeem VSNPRINTF-oproepen en een LINECAT-voorbeeld. · Het zal geen Sized USTR's verwijderen. tenzij nodig.


ustratie Gerelateerde software

vtkfltk

VTKFLTK is een kleine bibliotheek van C-klassen voor de ontwikkeling van FLTK-gebeurtenis-aangedreven interfaces voor gebruik met VTK. ...

147

Downloaden