C to ASM

Marek Pavlu pavlu@hwg.cz
Sobota Srpen 13 21:11:52 CEST 2005


Zdravim,

No kdyz Vas tak strasne boli zjistovani delky stringu, tak si to muzete
zabalit do vlastniho datoveho typu primo v C.

typedef struct 
{
	char* muj_string;
	unsigned int size;
} MyString

Pres sizeof priradit do size delku a je to, tedy u konstantnich stringu.
Samo v prubehu programu to po zapisu musim menit, ale jde to a to same dela
Packal Compiler:).

A nad tim postavit funkce, ale jak casto je potreba zjistovat delku?
Ve vetsim projektu s podporou HTTP jsem to temer nevyuzil.
Ono vetsinou staci cist znak po znaku, když se něco nekam sype a kdyz
dekoduji zname prikazy, tak taky vim, jak jsou dlouhe.

Kdo chce, ten si s problemem stringu poradi, kdo ne, hleda mouchy:)

S pozdravem,
		Marek Pavlu

// -----Original Message-----
// From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
// Behalf Of Slavomir Skopalik
// Sent: Saturday, August 13, 2005 4:09 PM
// To: 'HW-news'
// Subject: RE: C to ASM
// 
// > Nemas tak uplne pravdu. Nektere konstrukce v Basicu a Packalu
// > jsou prilis "obecne" a tim padem i hure prevoditelne do
// 
// Prosim, muzete toto prani nejak dokazat ?
// 
// > strojoveho jazyka, respektive svadeji k takovemu pouzivani,
// > ze vysledek je liny a nabotnaly :-))) Dale je v techto
// > jazycich (respektive v implementacich pro MCU) problem s
// > rozclenenim rozsahlejsiho programu na logicke celky, oddeleni
// > deklaraci a
// > definic
// 
// Jestli mate na mysle headry, tak vezte, ze to byl nevetsi omyl,
// ktereho se pri navrhu mohli panove dopustit.
// Velmi zasadni problem totiz spociva v tom, ze kompilator v okamziku
// kompilace neni schopen overit, ze header odpovida obj soboru.
// Tuto "vlastnost" jiz nastesti zcela odstranuje c#.
// 
// Par poznamek:
// Napriklad implementace stringu je v pascalu vyrazne rychlejsi,
// nez v C (diky tomu, ze neni treba neustale zjistovat delku).
// 
// Kdyz jsem porovnaval kod generovany GCC, C++ buldier 3, Delphi 7,
// tak po spravnem nastaveni optimalizaci v GCCa C++ byl kod stejny
// (+- nejaka instrukce).
// 
// Mnohem zasadnejsi je skutecnost, ze pro MCU neexistuje (neni mi znam)
// dobry kompiler pascalu, a ze v pascalu chyby napriklad tato vychytavka z
// C:
// 
// typedef struct test {
//     DWORD Prvni_dva_bity:2;
//     DWORD osm_bitu:8;
//     ....
//     }
// 
// V moznosti tvorby rozsahlich projektu je na tom pascal a c priblizne
// stejne (mam projekty v pascalu o rozsahu 100+ tisic radku).
// 
// Basic je zcela jina kategorie a NENI jej mozne srovnavat, jelikoz
// ma zcela jine urceni (interpretr, vse globalni, ...), pokud se ovsem
// nabavime
// o MS VB.NET (ten je hooodne podobny c#).
// 
// Slavek
// 
// 
// _______________________________________________
// HW-list mailing list  -  sponsored by www.HW.cz
// Hw-list@list.hw.cz
// http://list.hw.cz/mailman/listinfo/hw-list
---
avast! Antivirus: Odchozi zprava cista.
Virova databaze (VPS): 0532-6, 13/08/2005
Testovano: 13.8.2005 20:40:33
avast! (c) copyright 2000-2003 ALWIL Software.
http://www.avast.com







Další informace o konferenci Hw-list