mc -> do (wy)znawcow C ;)

Michal Zalewski lcamtuf w ids.pl
Pią, 28 Sie 1998, 20:36:22 CEST


On Fri, 2 Oct 1998, Wojtek Slusarczyk wrote:

> char *strstr (const char *haystack, const char *needle);
> 
> Podczas kompilacji na glibcu pluje takim bledem :
> 
> mountlist.c:105: parse error before `__extension__'
> mountlist.c:105: parse error before `needle'
> [...]
> #define strstr(haystack, needle) \
>   (__extension__ (__builtin_constant_p (needle) && sizeof ((needle)[0]) 
    [...]

Jak widac, strstr jest wczesniej zdefiniowany jako makro preprocesora.
Wobec tego gdy pojawia sie jako nazwa funkcji, deklaracja ta jest
zastepowana... wywolaniem makra =)

> I teraz pytanie do wszystkich GURU: jak ustawic to diabelstwo za
> wylaczeniem skrajnosci ???:

Sprawdzic w configure (jesli nie jest to robione domyslnie), czy w
systemie jest juz strstr, a jesli jest, zrobic #ifdef _HAVE_STRSTR i tylko
odpowiedniego includa, zamiast ponownej deklaracji...

_______________________________________________________________________
Michal Zalewski [lcamtuf w ids.pl] [ENSI / marchew] [dione.ids.pl SYSADM]
[http://linux.lepszy.od.kobiety.pl/~lcamtuf/] <=--=> bash$ :(){ :|:&};:
[voice phone: +48 (0) 22 813 25 86] ? [pager (MetroBip): 0 642 222 813]
Iterowac jest rzecza ludzka, wykonywac rekursywnie - boska [P. Deutsch]




Więcej informacji o liście dyskusyjnej pld-devel-pl