Auteur Sujet: Programmation : Le GOTO c'est le maaaaaaal  (Lu 51498 fois)

0 Membres et 1 Invité sur ce sujet

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #108 le: 07 mars 2015 à 12:47:11 »
"INT is an assembly language instruction for x86 processors that generates a software interrupt"

Oui .... c'est l'idée. Bien évidemment!

Je n'ai pas la moindre idée de ce que tu essaies de me démontrer.

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #109 le: 07 mars 2015 à 12:56:02 »
corrector, tu confonds le langage C avec les méthodes de programmation.
Hein?

Le C est justement un langage considéré comme bas-niveau
J'ai montré précédemment que c'est un très mauvais langage de bas niveau.

car il permet de faire n'importe quoi, surtout des trucs qui, algorithmiquement parlant, sont particulièrement cradingue.
Comme quoi?

Mais parfois les contraintes machines sont ce qu'elles sont, et justement C permet d'y répondre mais, certes, salement. Le but est parfois que ça marche, vite et bien.
Le but de la plupart des "programmeurs" est de torcher un code qui a vaguement l'air de marcher.

Si tu veux que le programmeur ne code pas comme un porc, tu l'obliges à utiliser un langage contraignant comme Ada qui est "haut-niveau" car ne permettant pas de faire n'importe quoi en manipulant des pointeurs en entiers ou l'inverse.
Tu peux faire des conversions forcées et des opérations dangereuses en Ada comme en C.

Si tout était programmé en Ada, on n'aurait peut-etre meme pas de faille de sécurité basée sur des largesses d'appréciation du développeur.
Un langage qui élimine les failles de sécurité?

Qu'est-ce qu'on se marre!

@Jack: un pointeur est un pointeur, pas en entier. Mais C s'en tape, la preuve:
char *tata = toto + 4;Ca marche car le compilateur s'en moque bien et sait comment s'y retrouver.
Non, C ne s'en tape pas. Au contraire tout dépend du type.

Tu ne comprends juste rien au C.

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 480
  • Malissard (26)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #110 le: 07 mars 2015 à 13:06:35 »

4 c'est un entier non ?

donc toto + 4 est une opération entre entiers, juste ?

et pourtant on stocke le résultat dans un type pointeur de char.

Formidable ! Le compilateur a retrouvé ses petits avec le type char et a su de combien gérer l'incrèment du pointeur.

Demo
void main(void)
{
        char *toto="hello";
        int *popo="hello";

        char *tata=toto+4;
        int *pipi=popo+1;

        printf("%s %s", tata, (char *)pipi);

}

Les deux affichent "o".

Bref, c'est là où C c'est du n'importe quoi. Mais c'est fait exprès.

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #111 le: 07 mars 2015 à 13:27:28 »
4 c'est un entier non ?

donc toto + 4 est une opération entre entiers, juste ?
Hein? Quoi?

et pourtant on stocke le résultat dans un type pointeur de char.
C'est un pointeur! Il n'y a pas de "pourtant".

Formidable ! Le compilateur a retrouvé ses petits avec le type char et a su de combien gérer l'incrèment du pointeur.
Il n'a pas "su gérer", il a implèmenté une opération du langage C.

Bref, c'est là où C c'est du n'importe quoi. Mais c'est fait exprès.
Ce que tu as écrit n'est pas du C, c'est du n'importe quoi.

MAINTENANT CA SUFFIT, HEIN.

ON NE VA PASSER LA JOURNÉE.

TU NE CONNAIS RIEN AU C. TU RACONTES N'IMPORTE QUOI. OU BIEN TU APPRENDS LE C, OU BIEN TU CULTIVES TON IGNORANCE.

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 677
  • La Madeleine (59)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #112 le: 07 mars 2015 à 13:38:43 »
Sisi, c'est du C !

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #113 le: 07 mars 2015 à 13:51:13 »
Qu'est-ce que tu essayes de prouver?

Qu'avec l'arithmétique des POINTEURS (qui ne sont pas des entiers) on peut faire des trucs tordus ou écrire du code de bas niveau?

Bien sûr qu'on peut. L'allocateur mémoire est écrit en C. Le GC de Java est écrit en C. Etc.

Cochonou

  • Abonné Bbox fibre
  • *
  • Messages: 1 367
  • FTTH 2 Gb/s sur Saint-Maur-des-Fossés (94)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #114 le: 09 mars 2015 à 12:41:32 »
Pour la postérité: je viens de supprimer un message erroné de ma part, ayant lu de travers un des exemples postés. Parfois mieux vaut s'abstenir.  :P

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 480
  • Malissard (26)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #115 le: 09 mars 2015 à 14:07:10 »
Pas grave ça ne s'était pas vu :)

Macharius

  • Réseau FTTH Europ' Essonne (91)
  • Abonné Bbox adsl
  • *
  • Messages: 183
  • La Membrolle sur Choisille (37)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #116 le: 09 mars 2015 à 14:34:11 »
Tu peux me montrer comment tu fais une simple recherche d'une valeur négative dans un tableau, avec retour de l'index de la première valeur?

Allez pour te faire plaisir :

int[] monTableau = { 1, 10, -5, 3, 4, -8, 2};
int iIndexOfFirstNegativeValue = Array.FindIndex(monTableau, i => i < 0); //retourne 2

Autre chose ?
Je peux te le faire d'autres façons si tu veux.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 114
  • Paris (75)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #117 le: 09 mars 2015 à 15:28:54 »
Allez pour te faire plaisir :

int[] monTableau = { 1, 10, -5, 3, 4, -8, 2};
int iIndexOfFirstNegativeValue = Array.FindIndex(monTableau, i => i < 0); //retourne 2

effectivement ca marche: http://goo.gl/xo86vb (cliquez sur 'compile' puis 'execute').

la meme en C 'crado': http://goo.gl/bvXasd  :o



corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #118 le: 09 mars 2015 à 17:26:10 »
Allez pour te faire plaisir :

int[] monTableau = { 1, 10, -5, 3, 4, -8, 2};
int iIndexOfFirstNegativeValue = Array.FindIndex(monTableau, i => i < 0); //retourne 2

Autre chose ?
Comment tu écris FindIndex?

Macharius

  • Réseau FTTH Europ' Essonne (91)
  • Abonné Bbox adsl
  • *
  • Messages: 183
  • La Membrolle sur Choisille (37)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #119 le: 09 mars 2015 à 17:32:25 »
Comment tu écris FindIndex?

Comme ça se prononce... F.i.n.d.I.n.d.e.x

Si la vraie question est celle de son implèmentation, à vrai dire je ne sais pas vu que c'est une méthode de .NET !