Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

conversion int vers string

47 réponses
Avatar
sebosac
salut,

je cherche a convertir un int en string:


<stdlib.h>

char string[255];


itoa(1664,&string,10);



mais le compilateur me dit qu'il ne peut linker car le symbole _itoa n'existe pas.


il y aurais t'il une autre solution ?

merci

7 réponses

1 2 3 4 5
Avatar
James Kanze
drkm writes:

|> James Kanze writes:

|> > Gabriel Dos Reis writes:

|> > |> Ou comme l'introduction de « volatile » avec la sémantique
|> > |> qu'un objet déclaré avec un type volatile pourrait voir sa
|> > |> valeur modifiée de manière inconnue au compilateur ou pourrait
|> > |> avoir d'autres « side effects » inconnus ? C'est vachement
|> > |> plus de vérification et de rigeur ça.

|> > Je ne sais pas. Je n'ai pas vu d'autres alternatifs. Dans la
|> > pratique, volatile m'a été assez utile dans les cas qui
|> > correspondaient à son utilisation voulue.

|> Il y a eu dans le DDJ (en deux parties, juillet et août 2004, je
|> pense) un article de Meyers et Alexandrescu sur C++ et le
|> Double-Checked Locking Pattern. Je ne l'ai pas sous la main, mais il
|> parlait notamment de volatile et de son inutilisabilité. Je ne me
|> souviens pas des détails, mais il ne m'a pas semblé que ces
|> problèmes étaient spécifiques au C++.

Je n'ai pas vu l'article, mais je peux imaginer le teneur. Scott m'avais
démandé mon avis sur une présentation qu'il allait faire avec Andrei il
y a six mois, environ, et on a eu une discussion assez détaillée.

Volatile ne sert effectivement à rien dans le threading. Pour deux
raisons : premièrement, ce n'est pas pour ça qu'il a été conçu, et
deuxièmement, les fournisseurs de compilateurs ont décidé de ne pas
l'étendre à cette utilisation.

|> Il me semble que la conclusion était qu'il n'était d'aucune
|> utilité dans ce cas. Voire en général. Je rappelle que je ne me
|> souviens pas des détails, mais je peux retrouver l'article, si
|> nécessaire.

Ce n'est pas la peine, étant donné que la critique que Scott fait de
volatile, c'est moi qui lui l'a donné.

Volatile est très utile dans les cas où il est utile. C-à-d, en général,
dans les cas pour lesquels il a été conçu, et quand les fournisseurs de
compilateurs le prenent en compte. En général, les compilateurs sur des
machines générales ne le prenent pas vraiment en compte, parce qu'il n'a
rien d'intéressant à faire dans un programme dans l'espace utilisateur.
En revanche, quand j'écrivais des pilotes de périphérique, j'étais bien
content de l'avoir.

|> Je n'ai jamais très bien cerné les garanties que donne la norme à
|> propos de volatile, et donc de ses utilisations possibles. Qu'en
|> est-il réellement ?

La norme ne garantit pas grand chose, en effet. Exprès, parce que toutes
les utilisations sont assez près du hardware. Mais quand tu fais des
entrées/sorties mappées mémoire, sur un processeur embarqué primatif
(comparé à un Sparc ou à un PC moderne), c'est extrèmement utile. Donc,
par exemple, sur un controlleur de ligne série que je connaissais, pour
commencer l'initialisation, il fallait écrire trois fois un 0 dans la
porte de contrôle. Ce qui se présentait en C comme :
*p = 0 ;
*p = 0 ;
*p = 0 ;
Même à l'époque, avec l'optimisation on ne peut plus primitive, le
compilateur reconnaissait qu'il pouvait supprimer les deux premières
affectations. À moins que p soit déclaré unsigned char volatile*.

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Avatar
Emmanuel Delahaye
James Kanze wrote on 11/11/04 :

<volatile>

En revanche, quand j'écrivais des pilotes de périphérique, j'étais bien
content de l'avoir.


Absolument.

entrées/sorties mappées mémoire, sur un processeur embarqué primatif


'primaire' ou 'primitif' !

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"C is a sharp tool"

Avatar
Gabriel Dos Reis
cedric writes:

| Gabriel Dos Reis wrote:
| > Non, on ne sait pas ce qu'il fait : il peut avoir des « unknowns side
| > effects », par exemple établir une commnication avec l'Alpha du
| > Centaure.
|
| Le compilateur ne sait pas ce qu'il fait, craint qu'il entre en

Il n'y a pas que le compilateur qui est concerné par la sémantique du
programme. Par exemple, comment un vérificateur de programme fait pour
savoir que le code généré par le compilateur a la bonne sémantique ?
D'après la définition de « volatile », rien n'empêche un compilateur
d'invoquer « unknown side effects » pour couvrir ses propres bogues de
traduction.

| communication avec alpha du centaure, et donc, ne sachant pas comment
| optimiser cette communication potentielle, s'en tiens à ce que le
| programmeur, qui lui sait ce qui se passe, à écrit dans son source.

Oui, mais quelle la sémantique du programme résultant ?

| Faut arreter la coke.

Tu parles sûrement de l'interface entre ton clavier et ta chaise ?

-- Gaby
Avatar
Gabriel Dos Reis
drkm writes:

[...]

| Je n'ai jamais très bien cerné les garanties que donne la norme à
| propos de volatile, et donc de ses utilisations possibles. Qu'en
| est-il réellement ?

Un trou noir.

-- Gaby
Avatar
cedric
Gabriel Dos Reis wrote:
Il n'y a pas que le compilateur qui est concerné par la sémantique du
programme. Par exemple, comment un vérificateur de programme fait pour
savoir que le code généré par le compilateur a la bonne sémantique ?


Clairement, il ne peut pas en se basant uniquement sur le programme.
C'est implémentation-defined.
Si j'ai bien compris, tu reproches à la norme d'autoriser à priori une
implémentation à faire ce qu'elle veut y compris aux objets non
volatiles du programme lorsqu'on accède à un objet volatile, c'est bien
cela ? Et que donc, on ne peut pas garantir que le compilateur est buggé
si un dragon sonne à la porte lorsqu'on accède à un objet volatile ?

Bon, mais si on ajoute à la sémantique du programme la sémantique de la
documentation du compilo et de l'architecture, alors tout rentre dans
l'ordre et les dragons seront biens gardés, non ?

| Faut arreter la coke.

Tu parles sûrement de l'interface entre ton clavier et ta chaise ?


Moi aussi f.m.e me manque...

Avatar
Gabriel Dos Reis
cedric writes:

| Gabriel Dos Reis wrote:
| > Il n'y a pas que le compilateur qui est concerné par la sémantique du
| > programme. Par exemple, comment un vérificateur de programme fait pour
| > savoir que le code généré par le compilateur a la bonne sémantique ?
|
| Clairement, il ne peut pas en se basant uniquement sur le
| programme. C'est implémentation-defined.

Si certains « side-effects » sont inconnus de l'implémentation, cela
ne peut pas être « implementation-defined ».

| Si j'ai bien compris, tu reproches à la norme d'autoriser à priori une
| implémentation à faire ce qu'elle veut y compris aux objets non
| volatiles du programme lorsqu'on accède à un objet volatile, c'est
| bien cela ?

Non.

je reproche au comité ANSI d'avoir inventé un trou noir.
Un machin qui donne à un programme C qui l'utilise, *n'importe quelle*
sémantique.

| Et que donc, on ne peut pas garantir que le compilateur
| est buggé si un dragon sonne à la porte lorsqu'on accède à un objet
| volatile ?

Pas « one ne peut pas garantir », mais on ne peut pas vérifier
raisonnablement que le compilateur fait quelque chose de raisonnable
-- google un peu et regarde la longueur et la teneur des fils sur volatile.

| Bon, mais si on ajoute à la sémantique du programme la sémantique de
| la documentation du compilo et de l'architecture, alors tout rentre
| dans l'ordre et les dragons seront biens gardés, non ?

Non.

-- Gaby
Avatar
cedric
Gabriel Dos Reis wrote:
-- google un peu et regarde la longueur et la teneur des fils sur volatile.


C'est ce que je vais faire. Merci.

1 2 3 4 5