[gull] Php/MsSQL obsoletes?

Daniel Cordey dc at mjt.ch
Wed Sep 28 14:16:36 CEST 2005


On Wednesday 28 September 2005 13:33, Marc Mongenet wrote:

> > Le compilateur n'aime pas...
>
> Si si, on peut, et le compilateur (GCC) ne dit rien du tout si
> l'on insiste pas (-Wall).

Quelle horreur... :-) Meme -ansi ?

Il est vrait que depuis 15 ans, tous mes developpements avaient d'abord passer 
au travers du compilateur C de HP-UX (dont le mode par defaut est ANSI depuis 
~10 ans). Je ne me susi donc jamais pose la question lorsque j'ai passe 
certains codes sous Linux... Tout au plus, note des differences concernant le 
traitement des pointeurs et de NULL (avec des pointeurs). 

> Il y a tout de même pas mal de choses qui sont explicitement « indéfinies »
> (undefined result) dans ANSI C.

Oui, mais une lecture du standard permet de savoir ce que l'on fait et de ne 
pas se trouver dans la situation d'utilisation d'une variable dont la valeur 
est indefinie suite a une opertaion.

> On ne peut plus, mais est-ce que les anciens compilateurs K&R C
> l'interdisaient ? 

Pour autant que je sache, oui ! 

> Il me semblent qu'ils ne testaient pas la compatibilité 
> des pointeurs et convertissaient même automatiquement entre
> pointeurs et entier (bon, avec les flottants peut-être tout de même pas).

C'est vrai pour les pointeurs <-> int/long, mais ca n'a jamais fonctionne avec 
des float.

> C++ pousse même encore plus loin dans ce sens, Stroustrup étant
> un ardent défenseur de la vérification des types à la compilation.

Toutes les verifications de compilation obligatoires en C++ peuvent etre 
effectuees en C. Je n'ai pas encore lu les definitions de C99, mais je 
suppose que c'est encore mieux defini; permettant une meilleure verification 
a la compilation.

> Je crois que c'est devenu nécessaire en C99 (à vérifier tout de même).
> En tout cas c'est nécessaire en C++.

Perso, je pense que ca devrait etre obligatoire. Mais je suis aussi persuade 
que certain programmeurs biaiseront cette necessite en repmplissant des 
declarations juste pour faire plaisir au compilateur.

> Il me semble que C++ est devenu moins souple avec les pointeurs de
> type void*.

Disons qu'il oblige a ecrire excatement ce que l'on peut faire !

> Je ne me rappelle plus des détails (faut le vouloir pour 
> utiliser des void* en C++).

Il y a des cas qui se justifient, mais ca ne doit pas etre une necessite, 
simplement pour bomber le torse. La manipulation d'objects crees 
dynamiquement est un bon candidat pour ce genre de pratique, mais c'est un 
debat delicat qui sort du cadre de cette liste.

dc



More information about the gull mailing list