Pierre Pronchery wrote:
> Francois-Xavier Kowalski wrote:
>
>> Pierre Pronchery wrote:
>>
>>> pour eviter le warning tu peux rajouter dans ton fichier source apres
>>> l'include:
>>> int isblank(int c);
>>>
>>
>> Re-declaration manuelle de prototype systeme. Quelle horreur...
>
> Y a un meilleur moyen?
Ya toujours un meilleur moyen que le pire.
> - patcher la libc?
> - re-coder la fonction?
> - utiliser une autre fonction?
Je pense que l'analyse selon laquelle les flags de compilation sont trop
restreints va dans la bonne direction. D'ailleurs je la complete...
#include <ctype.h>
#include <stdio.h>
int main( int argc, char* argv[] )
{
char toto[] = { ' ', '\t', '\n' };
int i;
for( i = 0; i < sizeof( toto ); i++ ) {
printf( "\"%c\" blank=%d\n", toto[i], isblank( toto[i] ) );
}
return 0;
}
1er essai de compil:
[fxk@fuerteventura fxk]> gcc -Wall -Werror isblank.c -o isblank
cc1: warnings being treated as errors
isblank.c: In function `main':
isblank.c:10: warning: implicit declaration of function `isblank'
[fxk@fuerteventura fxk]>
2eme essai, en activant la declaration de toutes les fonctionnalites de
la GLIBC:
[fxk@fuerteventura fxk]> gcc -D_GNU_SOURCE -Wall -Werror isblank.c -o isblank
[fxk@fuerteventura fxk]>
Execution:
[fxk@fuerteventura fxk]> ./isblank
" " blank=1
" " blank=1
"
" blank=0
[fxk@fuerteventura fxk]>
A+
--
Francois-Xavier 'FiX' KOWALSKI