[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

stdarg.h - jak sprawdzic ile parametrow przeslalo

AL

8/31/2007 3:26:00 PM

jest taka funkcjonalnosc w stdarg.h, pozwalajaca na wywolywanie funkcji
ze zmienna liczba argumentow.

Jak wiadomo, za pomoca makrodefinicji va_list va_start i va_end
mozna pobierac po kolei ze stosu parametry, znajac ich typ.

przyklad:
void PrintID(int MessageID, ...);

Powiedzmy, ze wiem jak sprawdzic typ danych przesylanych jako lista
zmiennych parametrow, ale jak sprawdzic dokladnie - ile tych parametrow
jest przekazywanych do funkcji, lub przynajmniej znac ich sumaryczna
dlugosc w bajtach.
(jak pobiore zbyt duzo ze stosu - to jest krach systemu)

Ma ktos jakis pomysl?

--
pozdr
Adam (AL)
TG
2 Answers

Any User

8/31/2007 3:32:00 PM

0

> jest taka funkcjonalnosc w stdarg.h, pozwalajaca na wywolywanie funkcji
> ze zmienna liczba argumentow.
>
> Jak wiadomo, za pomoca makrodefinicji va_list va_start i va_end
> mozna pobierac po kolei ze stosu parametry, znajac ich typ.
>
> przyklad:
> void PrintID(int MessageID, ...);
>
> Powiedzmy, ze wiem jak sprawdzic typ danych przesylanych jako lista
> zmiennych parametrow, ale jak sprawdzic dokladnie - ile tych parametrow
> jest przekazywanych do funkcji, lub przynajmniej znac ich sumaryczna
> dlugosc w bajtach.
> (jak pobiore zbyt duzo ze stosu - to jest krach systemu)
>
> Ma ktos jakis pomysl?

1. Przy przekazywaniu ustalia sobie jedn? specjaln? warto?a parametru,
która bedzie oznacza3a parametr ostatni, pusty - np. NULL.

2. Pobieraa po kolei parametry.
a) sprawdzaa, czy nie wyst?pi3a ta warto?a (np. NULL)
b) zliczaa pobrane parametry w osobnej zmiennej


--
Zobacz, jak sie pracuje w Google:
http://pracownik.bl...

Marcin 'Qrczak' Kowalczyk

9/1/2007 7:55:00 AM

0

Dnia 31-08-2007, Pt o godzinie 17:26 +0200, AL napisal(a):

> jak sprawdzic dokladnie - ile tych parametrow
> jest przekazywanych do funkcji, lub przynajmniej znac ich sumaryczna
> dlugosc w bajtach.

Nie da sie. Trzeba te informacje przekazac osobno.

--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.p...