1

si par exemple on fait


int a=3.7;

eske a est egale a 3 ou a 4??


cad eske le c arrondit au plus proche ou pas

et si oui esk'il arrondit par defaut ou par exces dans le cas de 0.5...

2

Je crois que c'est non spécifié par défaut... (pas tout-à-fait sûr, c'est peut-être vers -∞ par défaut). Tu peux régler ça avec fesetround() dans <fenv.h>

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

donc si je ne faut rien keski va se passer..

4

je pense que t'as une erreur de compilation.

5

Dans une variable globale, tu as en effet un "error: initializer element is not computable at load time". Dans une variable locale, tu as normalement 3 (valeur tronquée), mais je pense le standard C laisse ce choix à l'implémentation.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

Kevin Kofler
: Dans une variable globale, tu as en effet un "error: initializer element is not computable at load time".

Je ne suis pas sûr... Ou alors le standard spécifie que le compilo doit pouvoir simplifier les entiers (int tableau[16-1]) mais pas les flottants?


Et oui, ça peut te donner 3 ou 4, selon le compilo que t'utilises (mais je pense que globalement un certainement nb d'implémentations vont donner 3 -- et je ne sais pas ce qu'il en est pour -3.2).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

7

Pollux
:
Kevin Kofler
: Dans une variable globale, tu as en effet un "error: initializer element is not computable at load time".
Je ne suis pas sûr...

Moi si, j'ai compilé un programme de test avec TIGCC pour voir. smile
Ou alors le standard spécifie que le compilo doit pouvoir simplifier les entiers (int tableau[16-1]) mais pas les flottants?

En effet, les flottants ne sont pas considérées comme des expressions simplifiables en temps de compilation, probablement à cause des problèmes de représentation lors de la cross-compilation et/ou de modes d'arrondis.
Et oui, ça peut te donner 3 ou 4, selon le compilo que t'utilises (mais je pense que globalement un certainement nb d'implémentations vont donner 3 -- et je ne sais pas ce qu'il en est pour -3.2).

Pour les négatifs, c'est plus délicat.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

Kevin Kofler
:
Pollux
:
Kevin Kofler
: Dans une variable globale, tu as en effet un "error: initializer element is not computable at load time".
Je ne suis pas sûr...

Moi si, j'ai compilé un programme de test avec TIGCC pour voir. smile

Oui, mais rien ne dit que ce n'est pas de la faute de TIGCC happy


[EDIT : hum :
~ $ echo 'int x=3.7;' > $$.c && gcc -S $$.c && cat $$.s && rm -f $$.*
        .file   "3284.c"
.globl _x
        .data
        .align 4
_x:
        .long   3

]
(et les négatifs sont arrondis vers 0)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

Quelle version de GCC?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

Bon, soit il y a un problème dans nos routines de flottants, soit c'est un changement de GCC 3.3:
unknown@K ~
$ cat <<EOF >floats.c
> int i=3.7;
> EOF

unknown@K ~
$ gcc -S floats.c

unknown@K ~
$ cat floats.c
int i=3.7;

unknown@K ~
$ cat floats.s
        .file   "floats.c"
.globl _i
        .data
        .align 4
_i:
        .long   3

unknown@K ~
$ gcc --version
gcc.exe (GCC) 3.2 (mingw special 20020817-1)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Non, j'ai GCC 3.3.1 smile

Cela dit, c'est peut-être simplement lié au fait que la version x86 fait du zèle.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

12

Ben, vu que TIGCC est fortement patché au niveau des flottants, ça ne m'étonnerait pas si c'était un problème de notre côté... Il faudra que je vérifie un de ces jours.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

Les valeurs sont arrondies a l entier le plus pres de zeros ( arrondi a l inferieur pour les positif et au supperieur pour les negatifs ). Ca marche pour des variables locales ou globales, du moins sous unix. Lors de la compilation je n ai pas eu de warning.

mobi38
Le monde se separe en 10 categories de gens : ceux qui connaissent le binaire et ceux qui ne le connaissent pas.